Bashログファイルの奇妙な文字+これを防ぐ方法は?

Bashログファイルの奇妙な文字+これを防ぐ方法は?

ログに次のような奇妙な文字が表示される理由を理解できません。

はい -

 ^[[1m  

または

 ^[(B^ 

または

 ^[[1m  

または

 ^[(B^[[

または

 ^[[1m

ログから:(はい)

STATUS OF SERVICES

^[(B^[[mAMBARI_METRICS...... STARTED
HDFS................ STARTED
YARN................ STARTED
ZOOKEEPER........... STARTED
^[[1m
STATUS OF COMPONENTS

^[(B^[[mAPP_TIMELINE_SERVER. STARTED,
DATANODE............ STARTED,

答え1

〜のようにイルカチョ出力をログファイルにリダイレクトするプログラムは、ファイルにログインするのではなく、テキストコンソールを表示するためにフォーマットされた状態を記録するためのものです。

これは^[[1m例です表示属性の設定に使用されるANSI制御コードシーケンス(前景色や背景色、太字、下線など)。これは^[、ASCII制御文字(この場合は関連するANSI規格で制御シーケンスイントロデューサ(CSI)として使用されるエスケープ文字(Esc))の一般的な表現です。

したがって、この動作は使用中のすべてのプログラムに適用されます。どのタイプの出力デバイスに接続されているかを誤解することによって、プログラムがこれらのコードをエクスポートしないように欺くことができます。多くのプログラムは、curses環境変数の値を使用するライブラリを使用します。TERM

汎用シェルを使用すると、後続のコマンドに影響を与えることなく、単一のコマンドの環境変数の値を一時的に変更できます。

TERM=dumb programname options

関連情報