以下是commands.txt文件:

START - 'cmd1'
results1a
results1b
results1c
END - 'cmd1'
START - 'cmd2'
results2a
results2b
END - 'cmd1'
START - 'cmd1'
results1d
results1e
results1f
END - 'cmd1'

以下是我目前掌握的情况:
cat commands.txt | sed -n 's/^START - '"'"'(cmd1)'"'"'$/\1/p'

结果是
cmd1
cmd1

我想要的结果是
results1d
results1e
results1f

我还没想好如何得到多行匹配。

最佳答案

这条线适合您的需要:

awk "NR==FNR{if(/^START - 'cmd1'/)p=NR;next}FNR>p{if(/^END/)exit;print}" file file

你可以让regex更加严格,比如^ and $,但是你知道我该如何处理它。

关于regex - 如何使用sed/regex查找最后的多行匹配?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21688266/

10-08 22:54