我是Shell脚本和Unix命令的新手,并且试图找到一种在文件中的模式之间进行延迟匹配的好方法,但是却无法获得我想要的输出。文本类似于以下示例(编辑:修改后的文本字符串)

"hello
how
are
you
right
now
and
hey how
you
doing
thanks
see
you
and
ask
me if I
am
doing
okay"


所需的输出:

hey how
you
doing


我尝试使用在这里找到的多个答案来解决涉及sed,grep或awk的类似问题,而我一直看到此输出:

how
are
you
right
now
and
hey how
you
doing
thanks
see
you
and
ask
me if I
am
doing


我只想在单词“ how”和“ doing”之间执行一次惰性匹配,并打印(包括)之间的行(最好是如何使用解决方案将返回的文本分配给shell脚本中的变量)

提前致谢

编辑

最佳答案

我只想在单词“ how”和“ doing”之间进行惰性匹配,并在两者之间打印行


您可以使用以下awk

awk 'p{s = s ORS $0} /how$/{p=1; s=$0} p && /doing$/{print s; p=0}' file




hey how
you
doing

07-24 09:21