Отключить цвет при использовании скрипта(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 изcommandlinefu.comэто работает отлично, если вы что-то через него передаете. Конечно, вы можете сохранить вывод после передачи, например, так:

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

Связанный контент