小编典典

(grep)正则表达式匹配非ASCII字符?

all

在 Linux 上,我有一个包含大量文件的目录。其中一些具有非 ASCII 字符,但它们都是有效
UTF-8
。一个程序有一个错误,阻止它使用非 ASCII
文件名,我必须找出有多少受到影响。我打算这样做find,然后执行grep打印非
ASCII 字符,然后执行 awc -l来查找数字。它不必是 grep;我可以使用任何标准的
Unix正则表达式,例如PerlsedAWK等。

但是,是否有“任何不是 ASCII 字符的字符”的正则表达式?


阅读 111

收藏
2022-07-07

共1个答案

小编典典

这将匹配单个非 ASCII 字符:

[^\x00-\x7F]

这是一个有效的PCRE
Perl 兼容的正则表达式 )。

您还可以使用POSIX速记:

  • [[:ascii:]]- 匹配单个 ASCII 字符
  • [^[:ascii:]]- 匹配单个非 ASCII 字符

[^[:print:]]对你来说可能就足够了。**

2022-07-07