カラー出力を生成するコマンドがあり、それをファイルにパイプしてカラーコードを削除したいと思います。cat
カラーコードを削除することを除いて、同様に機能するコマンドはありますか?私は次のことをする予定です。
$ command-that-produces-colored-output | stripcolorcodes > outfile
ベストアンサー1
これを達成するためのユーティリティがあると思うかもしれませんが、見つかりません。ただし、このPerlステートメントはトリックを実行する必要があります。
perl -pe 's/\e\[?.*?[\@-~]//g'
例:
$ command-that-produces-colored-output | perl -pe 's/\e\[?.*?[\@-~]//g' > outfile
または、スクリプトが必要な場合は、次のように保存できますstripcolorcodes
。
#! /usr/bin/perl
use strict;
use warnings;
while (<>) {
s/\e\[?.*?[\@-~]//g; # Strip ANSI escape codes
print;
}
脱がしたいならただカラーコードを保存し、他のANSIコード(カーソル移動など)を維持するには、次のようにします。
s/\e\[[\d;]*m//g;
上記で使用した代替コードの代わりに(すべてのANSIエスケープコードを削除)