Существует ли простой способ вывести все символы, не входящие в набор ASCII, и номера строк, в которых они встречаются в файле, с помощью утилиты командной строки, такой как grep
, awk
, perl
, и т. д.?
Я хочу изменить кодировку текстового файла с UTF-8 на ASCII, но перед этим хочу вручную заменить все вхождения символов, не входящих в ASCII, чтобы избежать неожиданных изменений символов, вызванных процедурой преобразования файла.
решение1
$ perl -ne 'print "$. $_" if m/[\x80-\xFF]/' utf8.txt
2 Pour être ou ne pas être
4 Byť či nebyť
5 是或不
или
$ grep -n -P '[\x80-\xFF]' utf8.txt
2:Pour être ou ne pas être
4:Byť či nebyť
5:是或不
где utf8.txt находится
$ cat utf8.txt
To be or not to be.
Pour être ou ne pas être
Om of niet zijn
Byť či nebyť
是或不
решение2
Я хочу изменить кодировку текстового файла с UTF-8 на ASCII...
... заменить все вхождения символов, не входящих в набор ASCII ...
Затем дайте указание вашему инструменту конвертации сделать это.
$ iconv -c -f UTF-8 -t ASCII <<< 'Look at 私.'
Look at .
$ iconv -c -f UTF-8 -t ASCII//translit <<< 'áēìöų'
aeiou