ksh 中的 Grep 模式

ksh 中的 Grep 模式

关于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通配符模式。

相关内容