色分けされた出力をプロセスからパイプしたい場合があります。 grep…しかし、それを別のプロセスにパイプするとき、例えば。 sed、カラーコードが失われます…
コードをそのまま維持する方法はありますか?
色付きの出力が失われる例を次に示します。
echo barney | grep barney | sed -n 1,$\ p
承認された回答:
色付きの出力を生成する多くのプログラムは、TTYに書き込んでいるかどうかを検出し、そうでない場合は色をオフにします。これは、テキストをキャプチャするだけの場合にカラーコードが煩わしいため、自動的に「正しいことを実行」しようとするためです。
このようなプログラムからのカラー出力をキャプチャする最も簡単な方法は、TTYに接続されていなくても、カラーを書き込むようにプログラムに指示することです。プログラムにそのオプションがあるかどうかを確認するには、プログラムのドキュメントを読む必要があります。 (例:grep
--color=always
があります オプション。)
expect
を使用することもできます スクリプトunbuffer
次のような疑似ttyを作成するには:
echo barney | unbuffer grep barney | sed -n 1,$\ p
ほとんどのsystemdの例にWantedby=multi-user.targetが含まれているのはなぜですか?
Linux –ハードディスクの温度(hddtemp)に応じてファン制御を介してファン速度を調整しますか?