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