Pelo menos para ls, você pode usar
ls --color=never
Existe uma maneira de desativar a cor ao usar o script (1)? Meu arquivo de script está sendo preenchido com informações desnecessárias sobre cores de comandos como ls. Esta informação só é visível ao usar editores de texto, como vim e, possivelmente, gedit. Eu não estou olhando para fazer uma pesquisa e substituir, mas sim parar o problema antes que isso aconteça. Existe uma maneira de remover os caracteres de alimentação de linha ^ M por padrão também?
Eu incluí um exemplo de arquivo de script:
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
Isso é o que estou procurando:
$ 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
Pelo menos para ls, você pode usar
ls --color=never
Eu testei, mas percebi que precisaria rastrear todas as fontes possíveis de cor, como comandos, o prompt de comando em si, etc. Este é um filtro sed de commandlinefu.com que funciona muito bem se você canalizar qualquer coisa através dele. Claro que você pode salvar a saída uma vez canalizada assim:
cat test.txt | sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g" > new-test.txt
Tags command-line vim scripts colors