Используя тот же пример ввода, что и в ответе glenn jackman
$ awk '$2 in seen{if(c[$2]--){print fl[$2]} print} !seen[$2]++{fl[$2]=$0; c[$2]=1}' file
a b
b b
c b
a d
b d
!seen[$2]++
если $2
не встречается ранее:
fl[$2]=$0
сохраняем эту первую строку, я предположил, что входные данные не отсортированы и дубликаты могут встречаться в любом месте файла, поэтому сохраняем их на основе $2
, а не просто временной переменнойc[$2]=1
аналогично, инициализируем переменную count с 1$2 в seen
если $2
встречались ранее:
if(c[$2]--){print fl[$2]}
сначала печатается предыдущая строка, счетчик уменьшается, чтобы условие не выполнялось для последующих совпаденийprint
затем печатается текущая строка
С другими входными данными
$ cat ip.txt
6.2 : 897 : bar
3.1 : 32 : foo
1.2 : 123 : xyz
2.3 : 32 : baz
7.5 : 897 : boo
$ awk -F: '$2 in seen{if(c[$2]--){print fl[$2]} print} !seen[$2]++{fl[$2]=$0; c[$2]=1}' ip.txt
3.1 : 32 : foo
2.3 : 32 : baz
6.2 : 897 : bar
7.5 : 897 : boo
Обратите внимание, что порядок зависит от того, как возникают дубликаты
Есть несколько способов вернуть значки на панель задач.
Способ, которым я пользуюсь и рекомендую вам, это appindicator -, поддерживающий расширение Gnome. Существует несколько реализаций:
Поддержка KStatusNotifierItem/AppIndicator-Вариант по умолчанию и лучший способ для начинающих. Он может быть уже предустановлен в некоторых дистрибутивах Linux.
appindicatorsupport@rgcjonas.gmail.com.zip-(Устарело для Gnome 40)Исправленная версия предыдущей. Он не распространяется в магазине расширений, поэтому вам придется скачать, извлечь и поместить его вручную в ~/.local/share/gnome-shell/extensions/
. Но он предлагает множество вариантов конфигурации.
Каждое из этих решений также обеспечивает отличную интеграцию с оболочкой gnome -, поскольку в ней используются раскрывающиеся списки по умолчанию.
Еще один способ вернуть значки в трее — семейство расширений TopIcons. Все началось с того, что(больше не работает сегодня)расширение TopIcons .
TopIconsFix-Исправлена версия TopIcons.Он не обеспечивает настройку, а значки слишком велики, чтобы выглядеть красиво. Я не очень рекомендую этот.
TopIcons Plus-(Тот, что на скриншоте )Это хорошее расширение. Обеспечивает конфигурацию и значки выглядят красиво.
TopIcons Redux-Переписанный форк TopIcons Plus. Это может не работать в новейшей версии оболочки Gnome -.
Примечание. :Имейте в виду, что вы, возможно, не сможете заставить все значки в области уведомлений работать с расширениями TopIcons.
Некоторые программы с нерабочими -значками в области уведомлений можно исправить, изменив переменную окружения XDG_CURRENT_DESKTOP
перед их запуском. Попробуйте изменить эту переменную на Unity
или KDE
. Протестируйте свою программу с помощью следующих команд:
XDG_CURRENT_DESKTOP=Unity program
XDG_CURRENT_DESKTOP=KDE program
Если одна из команд работает, вы можете отредактировать файл.desktop вашей программы в ~/.local/share/applications/
или /usr/share/applications/
, чтобы включить эту переменную окружения в параметр Exec=
.
Exec=env XDG_CURRENT_DESKTOP=KDE program
Некоторые пользователи могут искать способ настроить свои значки в области уведомлений, чтобы они выглядели едиными и соответствовали теме системных значков (, как показано на моих снимках экрана выше ). В этом случае взгляните на проектHardcode -Tray .