我的文件sample1.txt包含以下数据:
2017-12-08
2017-12-31
2016-12-31
201707-31
2017-08-31
2017-08 -31
2017-0008-31
2017 08abcd 31
2017 0812-31
2017 -08- 31
我想获取从 2017 年开始到 31 年结束的日期,中间有“08”。我在 grep 中使用下面的正则表达式来获取这些日期,但它不起作用。
grep -E '^2017(08)+31$' sample1.txt
答案1
从 2017 年开始,到 31 结束,中间有“08”
- 从2017年开始——
^2017
- 然后有什么或什么都没有-
.*
- 然后有08-
08
- 然后有什么或什么都没有-
.*
- 然后以 31 结束 -
31$
把这一切放在一起
^2017.*08.*31$
我不明白你能从哪里得到(08)+
。在扩展 RE 中,这定义了一种由一个或多个08
序列组成的模式。例如,08
或0808
甚至080808080808080808
.