埃格雷普否定倒置

  • 本文关键字:埃格雷 regex grep
  • 更新时间 :
  • 英文 :


我正在使用egrep进行一些测试/学习目的,我对类中的否定("^")感到惊讶。

我在测试中使用以下文本.txt

Iraq
Qantas 
Iraqi
Iraqian
miqra
qasida
qintar
qoph
zaqqum%

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

您的 grep 正在按预期工作。由于qq,它打印zaqqum%

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

最新更新