我试图在pattern1(fixed)和pattern2之间提取文本(这可以是p2-1 / p2-2)。 你能告诉我如何用一个命令来实现这个目标吗?
文件以start
开头,以end
或close
File1:
======
junktest
data
start
stackoverflow
sed
close
File2:
======
data2
start
stackoverflow
end
我可以使用
从File1中提取文本sed -n "/start/,/close/p"
来自File2 with
sed -n "/start/,/end/p"
我需要一个sed命令才能实现这两个目标.. 类似的东西:
sed -n "/start/, /close or end /p"
答案 0 :(得分:4)
GNU sed
和BSD sed
:
sed -nE '/start/,/close|end/p' file
答案 1 :(得分:2)
这个awk看起来更好
awk '/start/,/end|close/' file
答案 2 :(得分:0)
sed -n -E "/Word1/,/Word2-1/p" | sed -n -E "/Word1/,/Word2-2/p"
答案 3 :(得分:0)
轻松awk
:
$ awk '/start/{p=1}p{print}/end|close/{p=0}' file