我有几个非常大的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可能会警告未实现的
特征