コンソールの標準出力でカラー出力を見たいのですが、tee
コマンド出力のキャプチャされたコピーからそれを削除したいと思います。私
標準出力に色を書き込むコマンド|ティー文書
ファイルにANSIカラーシーケンスなどがあってはなりません。これはgrep
後でログファイルが面白くなるからです。
echo -e "color \033[1;31mRED\033[0m output" | tee test.log
この場合、色はコンソールと「test.log」ファイルに記録されます。
color ^[[1;31mRED^[[0m output
tee
ファイル出力に対してのみANSIシーケンスを削除する方法はありますか?
私の端末を見ようとしてティーを取得しようとすると、色(環境変数、サブシェル)についてはわかりませんが、tee
それが私に与えたものを幸せにしました。私はコンソール出力の色(人が消費するのに良い)を望んでいますが、出力のログファイルのコピーの色は望ましくありません。
echo -e "color \033[1;31mRED\033[0m output" | TERM=dumb tee test.log ; od -c test.log
たくさんの人を見つけました。考える「パイプツーティー」出力でカラーコードを使用していますが(通常、最初のプログラムが色を表示できることがわかっている場合)、その逆の質問/回答が見つかりませんでした。
ベストアンサー1
Bashを使用している場合は、次のコマンドを使用してすべての色を削除できます(グラフィック再生)。
echo -e "color \033[1;31mRED\033[0m output" | tee >(sed $'s/\033[[][^A-Za-z]*m//g' > test.log)
またはみんなANSIエスケープシーケンス
echo -e "color \033[1;31mRED\033[0m output" | tee >(sed $'s/\033[[][^A-Za-z]*[A-Za-z]//g' > test.log)
(これをテストしましたが、完全ではありません。)
PSログファイルに追加するには、>> test.log
括弧内に追加してくださいtee -a
。