Egrep否定倒置

时间:2013-10-28 16:07:30

标签: regex grep

我正在使用egrep进行一些测试/学习目的,我对课堂上的否定(“ ^ ”)感到惊讶。

我在 test.txt

中使用了以下文字
Iraq
Qantas 
Iraqi
Iraqian
miqra
qasida
qintar
qoph
zaqqum%

使用: egrep'q [^ u]'test.txt ,结果如下: zaqqum%。如果我理解,我的结果应列出所有匹配,其中 q 存在 ,然后是 u 。 但正如你所看到的,我却反其道而行之。为什么? (我知道我可以使用egrep -v)。 感谢

1 个答案:

答案 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]'
$