我正在尝试匹配以下列表中的特定数字模式。
我的要求是仅将report.20150325
与report.20150331
匹配。请帮忙。
report.20150319
report.20150320
report.20150321
report.20150322
report.20150323
report.20150324
report.20150325
report.20150326
report.20150327
report.20150328
report.20150329
report.20150330
report.20150331
答案 0 :(得分:1)
匹配25到31使用正则表达式2[5-9]|3[01]
这是完整的正则表达式
(report\.201503(2[5-9]|3[01]))
2[5-9]|3[01]
2 followed by a single character in the range between 5 and 9
OR
3 followed by 0 or 1
答案 1 :(得分:0)
答案 2 :(得分:0)
好像你想打印出两条独立图案的线条之间的线条(包括与图案相匹配的线条)。
$ sed -n '/^report\.20150325$/,/^report\.20150331$/p' file
report.20150325
report.20150326
report.20150327
report.20150328
report.20150329
report.20150330
report.20150331
答案 3 :(得分:0)
正则表达式匹配并不总是正确的方法。在这里,您要求匹配一个字符串后跟一个数字,所以使用字符串和数字比较:
$ awk -F'.' '$1=="report" && ($2>=20150325) && ($2<=20150331)' file
report.20150325
report.20150326
report.20150327
report.20150328
report.20150329
report.20150330
report.20150331