关于grep的一个小问题。
我正在做 :
find . -type d
我有三个目录:
./backup-2013-11-27
./backup-2013-11-26
./backup-2013-11-28
如果我只想检索 11/26 的那个,我会这样做:
find . -type d | grep "2013.*11.*26"
它有效。
但是,我不明白为什么:
find . -type d | grep "2013*11*26"
不起作用...
事实上,我在这里没有使用正则表达式,我使用的是模式,所以*
应该用作通配符,或者不?
答案1
grep
使用与 korn shell 不同的正则表达式匹配。
这就是为什么 grep 需要包含.*
(匹配任何字符 0 次或多次)。在ksh
(和bash
)中,您仅用于*
该模式。
这种grep
方式通常被称为正则表达式模式和ksh
通配符模式。