为一个模式后跟另一个模式,并排除其中的输出作为输出

时间:2016-08-23 21:20:45

标签: regex grep

我想做点什么

egrep -o '(mon|tues)[1-3]?[0-9].*(mon|tues)[1-3]?[0-9]'

只得到(mon | tues)[1-3]找不到的东西?[0-9]

以此为输入

mon19hellotues20
mon19world
hellomon19
tues8worldtues22

我想要

mon19tues20
tues8tues22

作为输出

1 个答案:

答案 0 :(得分:1)

sed是更好的工具,可以在输出中打印某些匹配的txt:

sed -nE 's/(mon|tues)([1-3]{0,1}[0-9]).*(mon|tues)([1-3]{0,1}[0-9])/\1\2\3\4/p' file

mon19tues20
tues8tues22