如何对所有非ASCII字符进行grep?

我有几个非常大的XML文件,我试图找到包含非ASCII字符的行。我尝试了以下方法:

grep-e“[\x{00FF}-\x{FFFF}]”file.xml

但这将返回文件中的每一行,无论该行是否包含指定范围内的字符

我的语法有错吗?还是我在做别的事情?我也试过:

egrep“[\x{00FF}-\x{FFFF}]”file.xml

(图案周围有单引号和双引号)

您可以使用以下命令:

grep--color='auto'-P-n“[\x80-\xFF]”file.xml

这将为您提供行号,并以红色突出显示非ascii字符

在某些系统中,根据您的设置,上述操作将不起作用,因此您可以按相反的顺序进行grep

grep--color='auto'-P-n“[^\x00-\x7F]”file.xml

还要注意,重要的一点是-p标志,它等同于--perl regexp:因此它将把模式解释为perl正则表达式。它还说

这是高度实验性的,grep-p可能会警告未实现的
特征

发表评论