3 votes

Désactiver la couleur lors de l'utilisation de script(1)

Existe-t-il un moyen de désactiver la couleur lors de l'utilisation de script(1) ? Mon fichier script est rempli d'informations inutiles concernant les couleurs à partir de commandes telles que ls. Ces informations ne sont visibles que lorsque vous utilisez des éditeurs de texte tels que vim et, sans doute, gedit. Je ne cherche pas à faire une recherche et un remplacement, mais plutôt à arrêter le problème avant qu'il ne se produise. Existe-t-il un moyen de supprimer également les caractères de saut de ligne ^M par défaut ?

J'ai inclus un exemple de fichier 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

C'est ce que je recherche :

$ 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

1voto

odano Points 61

Au moins pour ls, vous pouvez utiliser

ls --color=never

1voto

grantbow Points 928

J'ai testé mais j'ai réalisé que j'aurais besoin de traquer toutes les sources possibles de couleur comme les commandes, l'invite de commande elle-même, etc. C'est un filtre sed de commandlinefu.com qui fonctionne très bien si on y fait passer quelque chose. Bien sûr, vous pouvez sauvegarder la sortie une fois qu'elle a été traitée comme ceci :

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

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X