texto sustituir script reemplazar para manejo lineas especiales eliminar comando caracteres cadenas bash unicode sed text-files spaces

bash - sustituir - sed eliminar lineas



Eliminar caracteres unicode de archivos de texto-sed, otros métodos bash/shell (5)

¿Cómo elimino los caracteres Unicode de un grupo de archivos de texto en la terminal? Lo intenté pero no funcionó:

sed ''g//u''U+200E''//'' -i *.txt

Necesito eliminar estos unicodes de los archivos de texto

U+0091 - sort of weird "control" space U+0092 - same sort of weird "control" space A0 - non-space break U+200E - left to right mark



Para la codificación utf-8 de Unicode, puedes usar esta expresión regular para sed:

sed ''s//xc2/x91/|/xc2/x92/|/xc2/xa0/|/xe2/x80/x8e//''


Si desea eliminar SOLAMENTE caracteres particulares y tiene Python, puede:

CHARS=$(python -c ''print u"/u0091/u0092/u00a0/u200E".encode("utf8")'') sed ''s/[''"$CHARS"'']//g'' < /tmp/utf8_input.txt > /tmp/ascii_output.txt


Use iconv:

iconv -f utf8 -t ascii//TRANSLIT < /tmp/utf8_input.txt > /tmp/ascii_output.txt

Esto traducirá caracteres como "Š" en "S" (los más similares).


borrar todos los caracteres no ascii de file.txt

$ iconv -c -f utf-8 -t ascii file.txt $ strings file.txt