我正在学习grep
atm,但我很难理解 kleene 星元字符的工作原理。手册页描述了*
匹配前一个字符零次或多次。我正在使用一个名为test
以下内容的文件
*a
123ab
1234
abcdef
a?
?
grep 'a*' test
应该匹配零次或多次出现,a
并且如解释的那样在输出中打印文件的每一行test
。该文档进一步描述了要匹配元字符,例如*
必须通过在它们前面加上反斜杠来进行转义\
。grep '*' test
但是和的输出grep '\*' test
是一样的。输出:*a
为什么*
匹配自身而不在其前面加上\
?