最近、コマンドラインツールでは、ログ出力に派手なANSI色を使用する傾向があります(たとえば、NPMと多くのnodejsベースのツール、rvm、docker、およびその他のいくつかの「モダン」ツール)。
これにより、画面(*)で読むのは便利ですが、出力をログファイルにパイプしたり、さまざまなリモート実行ツールやWebベースの監視ソリューションのようにANSIを適切に処理しないトランスポートを介して送信したりする場合は、あまり良くありません。より成熟したツールの多くは、少なくとも出力がTTYでなく、色が無効になっていることを検出する良識を持っていましたが、これらの新しい「ユーザーフレンドリーな」CLIではできませんでした。これにより、パイプでANSI色を取り除こうとしましたさらに別のプロセスによる出力。
出力をsed-ingするs/\x1B\[[0-9]*\w//gことは仕事を成し遂げたようですが、よりクリーンなアプローチは正規表現を私のすべてのスクリプトに貼り付けるだけですか?
(*)少なくとも、ツールが暗い背景の端末で暗い赤でエラーを表示しようとするまで。
                
                2
              
                  参照:unix.stackexchange.com/questions/14684/... - unix.stackexchange.com/questions/111899/...  stackoverflow.com/questions/17998978/...  superuser.com/questions/380772/... - 4+質問間のオーバー3つのサイトにまたがる3年のスパンでは、正規表現の置換/削除を行うツールを使用するための答えしか得られていません。何より良いものはないと思います。
                
                
                  
                    —
                    Zoredache 
                    
                  
                
              
                  議論の対象と思われるのは、どの正規表現がどの状況に最適かということだけです。
                
                
                  
                    —
                    Zoredache 2015年
                    
                  
                
              is there a cleaner approach then just copy pasting regular expressions into all of my scripts?-クリーンアップフィルターを '/ usr / local / bin / stripttycolor.sh`などのファイルに保存しますか?そうすれば、正規表現を単一の場所に制限できますか?
                
                  出力をファイルに書き込むことがわかっている場合、(少なくともNPMの場合)最も簡単なことは、
                
                  
                    —
                    Moshe Katz 
                    
                  
                
              --no-colorフラグを指定して実行することです。他の多くのコマンドにも同様のフラグがあります。
                
                  @MosheKatz:残念ながら、たとえばすべてのコマンドが実行できるわけではありません
                
                  
                    —
                    ガス、2015年
                    
                  
                
              bower。