我正在使用egrep进行一些测试/学习目的,我对课堂上的否定(“ ^ ”)感到惊讶。
我在 test.txt :
中使用了以下文字Iraq
Qantas
Iraqi
Iraqian
miqra
qasida
qintar
qoph
zaqqum%
使用: egrep'q [^ u]'test.txt ,结果如下: zaqqum%。如果我理解,我的结果应列出所有匹配,其中 q 存在和 不,然后是 u 。 但正如你所看到的,我却反其道而行之。为什么? (我知道我可以使用egrep -v)。 感谢
答案 0 :(得分:1)
你的grep按预期工作。由于zaqqum%
:
qq
$ egrep 'q[^u]' a
Iraqi
Iraqian
miqra
qasida
qintar
qoph
zaqqum%
如果你只是展示匹配,那就更清楚了:
$ egrep -o 'q[^u]' a
qi
qi
qr
qa
qi
qo
qq
如果您添加zaqum%
,则不会显示:
$ echo "zaqum%" | egrep 'q[^u]'
$