使用脚本时关闭颜色(1)

使用脚本时关闭颜色(1)

在使用脚本 (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

我测试了一下,但意识到我需要追踪所有可能的颜色来源,如命令、命令提示符本身等。这是一个来自命令行工具如果你通过它传输任何东西,效果会很好。当然,你可以像这样保存传输后的输出:

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

相关内容