相关疑难解决方法(0)

sed - 如果一行与条件匹配,则打印与模式范围匹配的行

我有一个需要处理的多行日志条目格式。

日志看起来像这样:

--START--
Device=B
Data=asdfasdf
Lorem=Ipsum
--END--
--START--
Device=A
Data=asdfasdf
Lorem=Ipsum
--END--
--START--
Device=B
Data=asdfasdf
--END--
--START--
Device=A
Data=asdfasdf
--END--
--START--
Device=B
Data=asdfasdf
--END--
--START--
Device=C
Data=asdfasdf
Lorem=Ipsum
--END--
Run Code Online (Sandbox Code Playgroud)

我想打印之间的一切--START----END--某一特定模式匹配。

例如:

打印所有条目 Device=A

--START--
Device=A
Data=asdfasdf
Lorem=Ipsum
--END--
--START--
Device=A
Data=asdfasdf
--END--
Run Code Online (Sandbox Code Playgroud)

到目前为止我能做的就是写:

sed -e -n '/--START--/,/--END--/p' < input
Run Code Online (Sandbox Code Playgroud)

这有效地打印了输入,但我认为我需要添加{}到过滤器,N然后打印该条件是否匹配。

我也觉得我完全迷失了。

如果单行符合条件,如何打印多行的任何想法?

sed text-processing

13
推荐指数
2
解决办法
2万
查看次数

标签 统计

sed ×1

text-processing ×1