.png)
Есть ли способ отключить цвет при использовании 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