web-dev-qa-db-ja.com

`less -R`に配管するときに色付きの出力を保持するにはどうすればよいですか?

$ ffmpeg -v debug ... 

カラー出力。

$ ffmpeg -v debug ... |& less -R

鈍い出力。

何かに配管しているときに出力を色付けするにはどうすればよいですか?

6
Vi.

--color=alwaysのようなオプションがないコマンドの場合は、次のように実行できます。あなたの例で:

script -c "ffmpeg -v debug ..." /dev/null < /dev/null |& less -R

scriptが行うことは、ターミナルセッションでコマンドを実行することです。

編集:コマンド文字列の代わりに、配列を提供できるようにしたい場合は、次のzshラッパースクリプトが機能しているようです。

#!/usr/bin/env zsh
script -c "${${@:q}}" /dev/null < /dev/null |& less -R
9
vinc17

コマンドラインを通常の配列ではなく文字列として期待するscriptの代わりに、 reptyr の特別なモードがあります。

reptyr -L ffmpeg -v debug ... < /dev/null |& less -R

reptyrのすべてのバージョンで-Lオプションが機能し、< /dev/nullを正常に受け入れるわけではないことに注意してください。これについては私のプルリクエストを参照してください。

0
Vi.