プログラムを制御しながらgrepを介してプログラムの標準出力をフィルタリングするにはどうすればよいですか?

プログラムを制御しながらgrepを介してプログラムの標準出力をフィルタリングするにはどうすればよいですか?

mpvメディアプレーヤーの出力をフィルタリングして特定の行を削除しようとしていますが、これによりキーボードを使用してmpvを制御できなくなります。これはコマンドです:

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

コマンドを実行すると、すべてが正しく表示されますが、左右のキーを使用してファイルをスキャンできないか、キーボードで他の操作を実行できません。プログラム制御を維持しながらプログラムの出力をフィルタリングするにはどうすればよいですか?

ベストアンサー1

script(1) プログラムを使用して、mpv に偽の端末を提供できます。たとえば、次のようになります。

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'

[編集:また確認してください標準入力がインタラクティブであると考えるようにアプリケーションをだます。他のソリューションの場合]

おすすめ記事