【发布时间】:2013-03-04 07:42:08
【问题描述】:
我正在尝试提取模式 1(固定)和模式 2(可以是 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 和
sed -n "/start/,/end/p"
我需要一个 sed 命令来实现这两者.. 类似:
sed -n "/start/, /close or end /p"
【问题讨论】:
-
一次打印两个文件还是两个模式空间?
-
其实我只是把它做成了两个文件。但是我从一个命令中得到了一些输出,我必须从输出中提取两个模式之间的文本。开始模式是固定的。但是结束格式可以是两个(固定)之一。有什么办法可以在 sed 命令中指定
-
啊,尝试使用
|,它指定了一个“或”,例如sed -n "/start/,/close|end/p" -
不,这似乎不起作用!
-
BSD sed 不同。也许尝试在管道字符的命令中添加 -E 。它用于扩展正则表达式。