grep的奇怪的正则表达式行为

时间:2013-08-12 20:10:38

标签: regex shell

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

此命令输出:0

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

但是,此命令输出:10598

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

1 个答案:

答案 0 :(得分:3)

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

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

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

一般说明:总是在小部件中测试正则表达式,看看每个部分是否真的按照您的想法执行。表达式变得复杂后,很难说出错了。