我有一个大文本文件,其中包含一些使 LaTeX 崩溃的 unicode 字符。如何在 Linux bash 中使用 sed 等在文件中查找非 ASCII 字符?
问问题
23507 次
2 回答
35
尝试:
nonascii() { LANG=C grep --color=always '[^ -~]\+'; }
可以像这样使用:
printf 'ŨTF8\n' | nonascii
内[]
^
是“不”的意思。所以[^ -~]
表示不在空格和~之间的字符。因此,不包括控制字符,这匹配非 ASCII 字符,并且是一个更便携但稍微不太准确的版本[^\x00-\x7f]
。该\+
方法1 or more
将获得多字节字符以在完整字符周围显示颜色,而不是散布在每个字节中,从而破坏多字节序列
于 2012-11-28T02:08:57.477 回答
26
试试这个命令:
grep -P '[^\x00-\x7f]' file
于 2012-11-28T02:00:20.907 回答