パイプコマンドで色を表示するには?

パイプコマンドで色を表示するには?

私が使用するとき:

msgattrib --untranslated pl.po

poファイルで翻訳されていない文字列を表示するには、色付きの文字列がありますが、次を使用するときはそうではありません。

msgattrib --untranslated pl.po | less

答え1

msgattrib実際の端末で実行している場合にのみ色を表示します。unbufferコマンドの一部を使用して実際の端末で実行されているとexpect考えてから、オプションを使用してANSIエスケープを処理できます。msgattrib-rless

unbuffer msgattrib --untranslated pl.po | less -r

ttyの存在に応じて色(ANSIエスケープコード)を生成する任意のコマンドでこれを行うことができます。

答え2

Lessのマニュアルページから:

-R or --RAW-CONTROL-CHARS
          Like -r, but only ANSI "color" escape sequences are output in "raw" form.  Unlike -r, the screen appearance is maintained correctly in most  cases.

この機能を常に有効にする最も簡単な方法は、LESSスクリプトで環境.profile変数を設定することです.login。私は-Randの両方を使用します-X(これを行うと、あまり終了しないときに画面が消去されるのを防ぎます)。

答え3

少ない色を表示するには、次のようにless -R <text-file> Lessをエイリアスとして設定します。alias less='less -R'~/.bashrc

関連情報