Одиночный grep
с -P
erl-совместимым параметром:
grep -Pc '^([^\|]*\|){12}\K1' file
Вы можете найти дисплей, на котором запущен сеанс GUI, с помощью команды who
.
Чтобы отправить вывод на дисплей из другого локального сеанса, добавьте к команде DISPLAY=:n
, где n
— номер дисплея.
Вы также можете установить переменную среды сеанса с помощью export DISPLAY=:n
, если у вас есть несколько команд, которые необходимо отправить на этот дисплей.
Если KDE запущен на tty1, скорее всего :0
, т.е. запускаемая команда:
DISPLAY=:0 plasmashell
FWIW, я часто перезапускаю Plasmashell, поэтому написал следующий скрипт. Он перестраивает базу данных Plasmashell, а затем убивает старый экземпляр Plasmashell с возрастающим уровнем серьезности.
kbuildsycoca5
timeout 5 kquitapp5 plasmashell
pgrep -U $USER -x plasmashell &>/dev/null && pkill -U $USER -x plasmashell
pgrep -U $USER -x plasmashell &>/dev/null && pkill -U $USER -x -9 plasmashell
pgrep -U $USER -x plasmashell &>/dev/null && echo "ERROR: cannot kill plasmashell"
plasmashell &
Н.Б. если вы хотите адаптировать это для использования с другого tty, вы можете убить предыдущую плазменную оболочку без определения DISPLAY
. Это просто запуск нового экземпляра, которому нужна переменная.