0

我将 egrep 用于某些测试/学习目的,我对课堂上的否定(“ ^ ”)感到惊讶。

我在test.txt中使用以下文本:

Iraq
Qantas 
Iraqi
Iraqian
miqra
qasida
qintar
qoph
zaqqum%

使用:egrep 'q[^u]' test.txt结果是: zaqqum%。如果我理解,我的结果应该列出所有存在q 后面没有u的匹配项。但正如你所见,我得到了相反的结果。为什么?(我知道我可以使用 egrep -v )。谢谢

4

1 回答 1

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]'
$
于 2013-10-28T16:09:59.330 回答