Como posso identificar caracteres não ASCII no shell?

Como posso identificar caracteres não ASCII no shell?

Existe uma maneira simples de imprimir todos os caracteres não ASCII e os números de linha em que eles ocorrem em um arquivo usando um utilitário de linha de comando como ,,, grepetc ?awkperl

Desejo alterar a codificação de um arquivo de texto de UTF-8 para ASCII, mas antes de fazer isso, desejo substituir manualmente todas as instâncias de caracteres não ASCII para evitar alterações inesperadas de caracteres efetuadas pela rotina de conversão de arquivo.

Responder1

$ perl -ne 'print "$. $_" if m/[\x80-\xFF]/'  utf8.txt
2 Pour être ou ne pas être
4 Byť či nebyť
5 是或不

ou

$ grep -n -P '[\x80-\xFF]' utf8.txt
2:Pour être ou ne pas être
4:Byť či nebyť
5:是或不

onde está utf8.txt

$ cat utf8.txt
To be or not to be.
Pour être ou ne pas être
Om of niet zijn
Byť či nebyť
是或不

Responder2

Quero alterar a codificação de um arquivo texto de UTF-8 para ASCII...

... substitua todas as instâncias de caracteres não ASCII ...

Em seguida, diga à sua ferramenta de conversão para fazer isso.

$ iconv -c -f UTF-8 -t ASCII <<< 'Look at 私.'
Look at .

$ iconv -c -f UTF-8 -t ASCII//translit <<< 'áēìöų'
aeiou

informação relacionada