2013-10-10 13 views
10

Ho uno script bash che viene eseguito e restituito a un file di testo, ma sono inclusi anche i codici colore che utilizza sono ciò che mi piacerebbe sapere è come rimuoverli dal file , vale a direRimuovere i codici colore ANSI da un file di testo utilizzando bash

^[[38;1;32mHello^[[39m 
^[[38;1;31mUser^[[39m 

quindi voglio solo essere lasciato con Ciao e l'utente

+0

risposta correlati con python: http://stackoverflow.com/questions/14693701/how-can-i-remove -the-ansi-escape-sequences-from-a-string-in-python – GreyCat

+2

Duplicato: http://unix.stackexchange.com/questions/4527/program-that-passes-stdin-to-stdout-with-color -codes-stripped – GreyCat

risposta

1

questo risolve il problema?

$ echo "^[[38;1;32mHello^[[39m" | sed -e 's/\^\[\[[0-9;]\{2,\}m//g' 
Hello 

evviva !!

+0

No, non lo è, perché '^ [' rappresenta il carattere ASCII Escape (Control- [, code 27). – Armali

+0

@Armali: non capisco il tuo punto. Secondo il requisito dell'OP, dovrebbe funzionare. Puoi pubblicare un esempio in cui non funziona? Saluti!! – MacUsers

+0

Sì ... 'TERM = xterm tput setf 1 | sed -e 's/\^\ [\ [[0-9;] \ {2, \} m // g' | hexdump -C' – Armali

3
sed -r "s/\x1B\[(([0-9]{1,2})?(;)?([0-9]{1,2})?)?[m,K,H,f,J]//g" file_name 

questo comando rimuove i caratteri speciali e codici di colore dal file

Questi sono alcuni dei codici ANSI: ESC[#;#H or ESC[#;#f si sposta il cursore sulla riga #, colonna # ESC[2J chiara dello schermo e la casa del cursore ESC[K chiaro alla fine della riga,

nota in caso di codice chiaro non c'è né numero né punto e virgola ;

d'accordo con un commento qui sotto: se i numeri sono più di 2 cifre gentilmente utilizzare questo:

sed -r "s/\x1B\[(([0-9]+)(;[0-9]+)*)?[m,K,H,f,J]//g" filename 
+0

non esiste alcuna garanzia sul numero di parti numeriche nel codice, quelle per l'impostazione del colore possono avere fino a 5 numeri senza ridondanza. i codici per l'impostazione di altre funzionalità (ad esempio la frequenza della campana di Linux) possono avere più di 2 cifre di seguito. – Jasen

+0

d'accordo con te Jasen :-) –

Problemi correlati