使用腳本時關閉顏色(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

我進行了測試,但意識到我需要追蹤所有可能的顏色來源,例如命令、命令提示字元本身等。命令列fu.com如果你透過它輸送任何東西,效果會很好。當然,您可以像這樣保存一次管道輸出:

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

相關內容