我有几个非常大的
XML文件,我试图找到包含非ASCII字符的行.我尝试过以下方法:
grep -e "[\x{00FF}-\x{FFFF}]" file.xml
但是这会返回文件中的每一行,无论该行是否包含指定范围内的字符.
我的语法有错吗?或者我做错了什么?我也尝试过:
egrep "[\x{00FF}-\x{FFFF}]" file.xml
(模式周围有单引号和双引号).
您可以使用以下命令:
原文链接:https://www.f2er.com/regex/356787.htmlgrep --color='auto' -P -n "[\x80-\xFF]" file.xml
这将为您提供行号,并以红色突出显示非ascii字符.
在某些系统中,根据您的设置,上述操作无效,因此您可以通过反向操作
grep --color='auto' -P -n "[^\x00-\x7F]" file.xml
另请注意,重要的位是-P标志,它等同于–perl-regexp:所以它会将您的模式解释为Perl正则表达式.它也说
this is highly experimental and grep -P may warn of unimplemented features.