我是脚本新手,并且正在尝试学习如何提取两种不同模式之间存在的任何文本.但是,在以下场景中,我仍然无法弄清楚如何在两种模式之间提取文本:
如果我的输入文件读取:
Hi I would like
to print text
between these
patterns
Run Code Online (Sandbox Code Playgroud)
我的预期输出如下:
I would like
to print text
between these
Run Code Online (Sandbox Code Playgroud)
即我的第一个搜索模式是"嗨"并跳过这个模式,但打印出匹配模式后面的同一行中存在的所有内容.我的第二个搜索模式是"模式",我想完全避免打印此行或超出任何行那.
我尝试了以下方法:
sed -n '/Hi/,/patterns/p' test.txt
Run Code Online (Sandbox Code Playgroud)
[输出]
Hi I would like
to print text
between these
patterns
Run Code Online (Sandbox Code Playgroud)
接下来,我试过:
`awk ' /'"Hi"'/ {flag=1;next} /'"pattern"'/{flag=0} flag { print }'` test.txt
Run Code Online (Sandbox Code Playgroud)
[输出]
to print text
between these
Run Code Online (Sandbox Code Playgroud)
有人可以帮助我确定如何实现这一目标吗?提前致谢