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