困惑:在shell中正则表达式并查找

时间:2015-03-08 22:07:37

标签: regex shell unix

enter image description here

我通过以下命令匹配目录r09 r10中的数据:

find r[0-9]* -name '\*-ch24-\*' | sed -e 's|r[0-9]*/n_ch24/||' > sim_sets1.txt

但感到困惑,为什么它不是find r[0-9]\* -name '.\*-ch24-.\*

1 个答案:

答案 0 :(得分:2)

*-ch24-*是一个全局。 -name匹配globs。对于glob,*匹配任何字符的零个或多个。

.*-ch24-.*是正则表达式。如果要匹配正则表达式,请使用-regex而不是-name。在正则表达式中,.匹配任何字符,*是一个量词,表示前面字符中的零个或多个。