スクリプト使用中に色をオフにする(1)

スクリプト使用中に色をオフにする(1)

script(1) の使用中に色をオフにする方法はありますか? 私のスクリプト ファイルは、ls などのコマンドからの色に関する不要な情報でいっぱいになっています。この情報は、vim や gedit などのテキスト エディターを使用しているときにのみ表示されます。検索と置換を行うのではなく、問題が発生する前に停止したいと考えています。デフォルトで ^M 改行文字も削除する方法はありますか?

サンプル スクリプト ファイルを添付しました:

Script started on Mon 05 May 2014 10:58:33 PM ADT                               
^M^M                                                                            
$ ls^M                                                                          
^[[0m^[[01;34mBin^[[0m  ^[[01;34mDesktop^[[0m  ^[[01;34mDocuments^[[0m  ^[[01;34mDownloads^[[0m  examples.desktop  ^[[01;34mMusic^[[0m  ^[[01;34mPictures^[    [0m  ^[[01;34mPublic^[[0m  ^[[01;34mTemplates^[[0m  test.txt  ^[[01;34mVideos^[[0m^M
^M^M                                                                            
$ exit^M                                                                        
exit^M                                                                          

Script done on Mon 05 May 2014 10:58:50 PM ADT

私が探しているのはこれです:

$ script test.txt
Script started, file is test.txt

$ ls
Bin  Desktop  Documents  Downloads  examples.desktop  Music  Pictures  Public  Templates  test.txt  Videos

$ exit
exit
Script done, file is test.txt

答え1

少なくともlsの場合は、

ls --color=never

答え2

私はテストしましたが、コマンドやコマンドプロンプト自体など、色の可能性のあるすべてのソースを追跡する必要があることに気付きました。これはsedフィルターです。コマンドラインfu.comこれは、何かをパイプで通す場合に非常に便利です。もちろん、次のようにパイプで通した出力を保存することもできます。

cat test.txt | sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g" > new-test.txt

関連情報