Farbe bei Verwendung von Skript ausschalten(1)

Farbe bei Verwendung von Skript ausschalten(1)

Gibt es eine Möglichkeit, die Farbe während der Verwendung von script(1) auszuschalten? Meine Skriptdatei wird mit unnötigen Informationen zu Farben aus Befehlen wie ls gefüllt. Diese Informationen sind nur sichtbar, wenn Texteditoren wie vim und wohl auch gedit verwendet werden. Ich möchte kein Suchen und Ersetzen durchführen, sondern das Problem stoppen, bevor es auftritt. Gibt es eine Möglichkeit, auch die Zeilenvorschubzeichen ^M standardmäßig zu entfernen?

Ich habe eine Beispiel-Skriptdatei beigefügt:

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

Das ist, was ich suche:

$ 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

Antwort1

Zumindest für ls können Sie verwenden

ls --color=never

Antwort2

Ich habe es getestet, aber festgestellt, dass ich alle möglichen Farbquellen wie Befehle, die Eingabeaufforderung selbst usw. aufspüren muss. Dies ist ein Sed-Filter voncommandlinefu.comdas funktioniert hervorragend, wenn Sie alles durchleiten. Natürlich können Sie die Ausgabe auch speichern, nachdem sie wie folgt weitergeleitet wurde:

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

verwandte Informationen