【发布时间】:2015-07-09 10:18:32
【问题描述】:
我对以下命令感到困惑
$ cat num.txt
1
2
3
1st
2nd
3th
$ cat num.txt | grep -Eo '[0-9](?:st|nd|th)?'
我认为它应该输出为
1
2
3
1
2
3
但它输出为
1
2
3
1
2nd
3th
我在这里做错了什么?感谢您的帮助。
【问题讨论】:
-
非捕获组不会阻止任何子字符串出现在整个匹配结果中。它只是避免创建捕获(可通过组号访问的单独子字符串)。