我是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