GNU/Linux >> Linux Esercitazione >  >> Linux

Come rimuovere i caratteri non ascii usando sed

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'

Linux
  1. Come rimuovere l'utente in Linux utilizzando la riga di comando

  2. Come eliminare le prime N righe di un file Ascii utilizzando i comandi della shell?

  3. Come rimuovere file più vecchi di N giorni usando tmpreaper in Linux

  4. Come scrivo caratteri non ASCII usando echo?

  5. Rimuovi un carattere specifico usando awk o sed

Come rimuovere directory e file utilizzando Linux

Come rimuovere file e directory utilizzando la riga di comando di Linux

Come rimuovere le righe da un file usando il comando Sed

Tutorial Unix Sed:come scrivere su un file usando Sed

Come rimuovere un inoltro e-mail utilizzando cPanel

Come rimuovere il carattere \r con sed