答案 0 :(得分:2)
grep
无法识别\x
语法。
( echo Hello ; echo '\\x48' ) | grep '\x48'
打印
\x48
('H'
是字符0x48。)
您的grep
匹配所有行,因为每行包含\
,x
,0
,7
,F
以外的字符以及0
.. \
范围内的任何内容。
请注意,这不是Cygwin特有的。
GNU grep(这是Cygwin所拥有的)有一个实验-P
选项,告诉它使用类似Perl的正则表达式;使用该选项,它确实识别\x
语法。
答案 1 :(得分:1)
Grep可能将多字节(即非ASCII)字符解释为多个单字节(ASCII)字符。 (这样,这个可爱的∩
字符[U + 2229]会显示为"
[U + 0022],然后是)
[U + 0029]。)您需要找出文件的编码并使用一个知道Unicode的更复杂的系统。
答案 2 :(得分:1)
发现perl有效:
perl -n -e'打印if / [^ \ x00- \ x7F] /'file