当我写下面的命令时,它选择“aapp”。但应该是“aap”。因为 '*' 表示零个或多个 'a'。'p' 表示一个 p。
$ echo "aapple" | grep "a*p"
有人可以解释一下原因吗,为什么 grep 没有按预期选择?
Grep 是面向行的,因此它从输入中读取行,并在其任何部分与指定的 RE 匹配时打印整行。因此,任何包含 p 的输入行都将打印
a*p
。
$ echo "aapple" | grep "a*p"
aapple
$ echo "nothing special" | grep "a*p"
nothing special