我有几个非常大的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正则表达式。它也说