奇怪的grep行为

Wil*_*ell 5 bash grep

这个问题的启发,任何人都可以解释以下行为吗?

$ echo "-uus" | grep -wo '[0]*' && echo matched
-uus

matched
$ echo "-uus" | grep -o '[0]*' && echo matched
matched
$ grep --version | sed 1q
grep (GNU grep) 2.5.1

特别是,为什么第二个grep成功,但没有产生输出?为什么第一个命令有两行输出?我可以理解输出的第二行,但我不明白第一行.

cho*_*oba 3

旧版本中存在错误grep。我在这里报告了一个:

https://bugzilla.redhat.com/show_bug.cgi?id=144980

较新版本grep不再出现该问题。