如何识别shell中的非ASCII字符?


11

有一个简单的方法来打印上,他们使用命令行实用程序,如在文件中出现的所有非ASCII字符和线路号grepawkperl,等?

我想将文本文件的编码从UTF-8更改为ASCII,但在此之前,希望手动替换所有非ASCII字符实例,以避免由文件转换例程影响的意外字符更改。

Answers:


11
$ 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ť
是或不

1
谢谢。perl代码片段直接工作,但grep版本不适用于GNU grep 2.16。我能够通过以下方式使其工作:LC_ALL=C grep -n -P [$'\x80'-$'\xFF']第一位关闭整理。
Joe Corneli 2014年

4

我想将文本文件的编码从UTF-8更改为ASCII ...

...替换所有非ASCII字符的实例......

然后告诉您的转化工具。

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

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

他说他想手动做替换。也许最合适的替代是依赖于上下文的。
mark4o
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.