Le soluzioni offerte qui non hanno funzionato per me. Forse il mio problema era diverso, ma avevo bisogno di rimuovere i colori ASCII e altri caratteri dal testo ASCII altrimenti puro.
Quanto segue ha funzionato per me, tuttavia:
Rimozione dei codici escape dal testo ASCII
sed -E 's/\x1b\[[0-9]*;?[0-9]+m//g'
Nel contesto (BASH):
$ printf "\e[32;1mhello\e[0m\n"
hello
$ printf "\e[32;1mhello\e[0m\n" | cat -vet
^[[32;1mhello^[[0m$
$ printf "\e[32;1mhello\e[0m\n" | sed -E 's/\x1b\[[0-9]*;?[0-9]+m//g' | cat -vet
hello$
Ci hai provato
cat /bin/mkdir | tr -cd "[:print:]"
Penso che risolva il problema?
Se ti interessano solo i contenuti testuali, puoi utilizzare anche
cat /bin/mkdir | strings
Sai quale codifica sta attualmente utilizzando il file? In tal caso, puoi utilizzare iconv per convertirlo. È un'utilità per convertire da una codifica di caratteri a un'altra. Quindi, se il file originale è in UTF-8 e desideri convertirlo in ASCII, puoi utilizzare quanto segue:
iconv -f utf8 -t ascii <inputfile>
Il comando file sul file di input potrebbe dirti la codifica corrente.
È interessante notare che c'è un comando chiamato enca che farà del suo meglio per determinare la codifica dei caratteri utilizzata se conosci la lingua del contenuto del file.
Quest'altra domanda potrebbe essere la risposta.
Questo non sembra funzionare con sed
. Forse tr
va bene?
tr -d '\200-\377'
O con il complemento:
tr -cd '\000-\177'