cat > abc.txt <<EOF
2014-04-11 00:00:00
2014-02-19 00:22:00
EOF
执行时
grep -E :[0-9]{2}: abc.txt
我得到了
2014-02-19 00:22:00
我在期待
2014-04-11 00:00:00
2014-02-19 00:22:00
这发生在鱼壳(2.4.0)上,在bash上工作正常。我对这里发生的事情非常感兴趣
答案 0 :(得分:7)
在鱼{a,b,c}
中是一名普查员。文档中的使用示例:
$ echo input.{c,h,txt}
input.c input.h input.txt
因此,您的正则表达式会扩展为:[0-9]2:
:
$ echo :[0-9]{2}:
:[0-9]2:
$ echo :[0-9]{2,3,4}:
:[0-9]2: :[0-9]3: :[0-9]4:
逃避花括号以避免这种情况:
$ echo :[0-9]\{2\}:
:[0-9]{2}:
或者,正如Fredrik建议的那样,引用整个正则表达式:
$ echo ':[0-9]{2}:'
:[0-9]{2}: