0
grep '[:digit:]{1,}-{1,}' *.txt| wc -l

此命令输出:0

grep '1-' *.txt| wc -l

但是,此命令输出:10598

两个命令都从同一个目录运行。第一个命令的返回值应该大于或等于第二个命令的输出。任何人都可以对这里发生的事情有所了解吗?

4

1 回答 1

3
echo 1 | grep '[:digit:]'
#nothing....

grep使用不同的语法,你需要[[:digit:]]or [0-9]

{1,}基本 grep 不支持该语法,您可以使用其他模式,例如带有-E... 的扩展模式 注意:通常+用于匹配一个或多个字符...。

一般注意事项:始终在小部分中测试正则表达式,以查看每个部分是否确实按照您的想法进行。一旦表达变得复杂,就很难判断出了什么问题。

于 2013-08-12T20:12:58.067 回答