[USERNAME@host ~] echo -e 'prdxxx\ndadxxx' | grep "da*xxx"
prdxxx
dadxxx
[USERNAME@host ~] echo $SHELL
/bin/bash
[USERNAME@host ~] dpkg -l | grep -iw bash
ii bash 4.1-2ubuntu3 The GNU Bourne Again SHell
ii bash-completion 1:1.1-3ubuntu2 programmable completion for the bash shell
[USERNAME@host ~]
为什么也da*xxx
找到了prdxxx
?它不包含da
...我发现了 grep bug 吗?或者这是一个功能?
答案1
根据“*”的含义,它工作正常。
*
-> 上一个字符出现 0 次或多次。
由于您正在检查 a*,因此这将匹配 0 个或多个 a。这意味着da*xxx
可以匹配 dxxx、daxxx、daaxxx、daaaxxx 等。