首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sed提取两个模式之间的文本,其中第二个模式可以是其中之一

sed提取两个模式之间的文本,其中第二个模式可以是其中之一
EN

Stack Overflow用户
提问于 2013-03-04 15:42:08
回答 4查看 15.1K关注 0票数 1

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

文件以start开头,以endclose结尾

代码语言:javascript
复制
File1:
======
junktest
data
start
stackoverflow
sed
close

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

我可以用以下命令从File1中提取文本

代码语言:javascript
复制
sed -n "/start/,/close/p"

和来自File2的

代码语言:javascript
复制
sed -n "/start/,/end/p"

我需要一个单独的sed命令来实现这两个目标。类似于:

代码语言:javascript
复制
sed -n "/start/, /close or end /p"
EN

回答 4

Stack Overflow用户

发布于 2013-03-05 04:51:35

GNU sed和BSD sed

代码语言:javascript
复制
sed -nE '/start/,/close|end/p' file
票数 5
EN

Stack Overflow用户

发布于 2013-03-05 02:13:43

这个awk看起来好多了

代码语言:javascript
复制
awk '/start/,/end|close/' file
票数 2
EN

Stack Overflow用户

发布于 2013-03-04 17:28:31

代码语言:javascript
复制
sed -n -E "/Word1/,/Word2-1/p" | sed -n -E "/Word1/,/Word2-2/p"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15196750

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档