2016-07-29 144 views
0

如果我使用像这样的ls | grep '^[-[:alnum:]\._]+$'这样的grep命令来匹配文件名,它不会输出任何结果,但是当命令更改为ls | grep '^[-[:alnum:]\._]*$'时,它会正常工作。这是怎么回事?为什么这个grep命令没有输出?

+0

'*'= 0或更多。 '+'=一个或多个。很显然你的'+'正则表达式没有任何匹配。 –

+0

我知道,但文件名必须匹配一个或多个 –

回答

1

grep使用"basic"正则表达式由default其中+是一个正常字符。您需要\+以匹配1个或多个东西(或使用grep -E)。

+0

谢谢。有用! –