Intereting Posts
Установите стороннее программное обеспечение на Linux из источника Как выйти из скрипта в сеансе ssh? Как разделить строки vCards Как установить Fedora или любой другой Linux на жесткий диск USB и настроить загрузку? Вертикальная прокрутка виртуального терминала очень медленная Gnome Terminal – клавиатура вводит только звуковые сигналы скрипт iptables для блокировки всего интернет-доступа, за исключением желаемых приложений Как изменить заголовок активного окна с помощью wmctrl Продолжайте отслеживать символические ссылки? Почему у mkdir по умолчанию установлен флаг -p, чтобы разрешить создание вложенных каталогов? Как я могу поместить эту строчную манипуляцию в цикле, чтобы она продолжалась, пока нечего делать? Почему история Bash не записывает эту команду? Какие ситуации существуют, когда переменные Bash не должны быть двойными кавычками? Является ли пользователь с UID 1 «демоном» во всех системах? find -exec sed, чтобы найти / заменить строку многократного использования

Как фильтровать stdout программы через grep, все еще контролируя программу?

Я пытаюсь отфильтровать вывод медиаплеера mpv, удаляя определенную строку, но когда я это делаю, я не могу контролировать mpv с помощью клавиатуры. Вот команда:

mpv FILE | grep -v 'Error while decoding frame' 

Когда я запускаю команду, все отображается правильно, но я не могу использовать клавиши LEFT и RIGHT для сканирования через файл или делать что-либо еще с клавиатуры. Как фильтровать выходные данные программы, сохраняя при этом контроль над ней?

Вы можете дать mpv поддельный терминал, используя программу сценария (1), например:

 script -c 'mpv FILE' /dev/null | grep -v 'Error while decoding frame' 

Для Mac OS X синтаксис выглядит следующим образом :

 script /dev/null mpv 'FILE' | grep -v 'Error while decoding frame' 

[edit: также проверить Trick приложение, чтобы думать, что его stdin является интерактивным для дополнительных решений]

Вы можете использовать nohup mpv FILE . Выход записывается в nohup.out который вы можете фильтровать с помощью tail и grep :

 nohup mpv FILE tail -f nohup.out |grep -v 'Error while decoding frame'