1

我正在尝试在 pattern1(固定)和 pattern2(这可以是 p2-1/p2-2)之间提取文本。你能告诉我如何在一个命令中实现这一点吗?

文件以or开头start和结尾endclose

File1:
======
junktest
data
start
stackoverflow
sed
close

File2:
======
data2
start
stackoverflow
end

我可以从 File1 中提取文本

sed -n "/start/,/close/p"

并从 File2 与

sed -n "/start/,/end/p"

我需要一个 sed 命令来实现这两者.. 像:

sed -n "/start/, /close or end /p"
4

4 回答 4

5

GNUsed和 BSD sed

sed -nE '/start/,/close|end/p' file
于 2013-03-04T20:51:34.670 回答
2

这个 awk 看起来更好

awk '/start/,/end|close/' file
于 2013-03-04T18:13:42.973 回答
0
sed -n -E "/Word1/,/Word2-1/p" | sed -n -E "/Word1/,/Word2-2/p"
于 2013-03-04T09:28:31.033 回答
0

容易awk

$ awk '/start/{p=1}p{print}/end|close/{p=0}' file
于 2013-03-04T09:45:32.320 回答