如何使用 grep 或 awk 打印出特定的块? [复制]

Posted

技术标签:

【中文标题】如何使用 grep 或 awk 打印出特定的块? [复制]【英文标题】:How to use grep or awk to print out specific chunks? [duplicate] 【发布时间】:2019-05-26 16:50:37 【问题描述】:

我想打印出一段具有特定开始和结束模式的文本文件。

例如file.txt有

Start X1
 <stuff_for_x1>
END

Start Y1
 <stuff_for_y1>
END

Start X2
 <stuff_for_x2>
END

我希望我的输出是:

Start X1
 <stuff_for_x1>
END

Start X2
 <stuff_for_x2>
END

打印所有以“Start X”开头并以“END”结尾的块。

我不知道如何解决这个问题。非常感谢您的帮助:)

【问题讨论】:

【参考方案1】:

使用awk 选择以 (^) "Start X" 和 "END" 开头的行之间的所有行

awk '/^Start X/,/^END/' file.txt 

【讨论】:

以上是关于如何使用 grep 或 awk 打印出特定的块? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

grep,sed,awk用法整理

grep,sed,awk工具的使用

如何使用 sed、awk 或 gawk 仅打印匹配的内容?

Unix & Linux的文本处理工具 -- grep, sed & awk

Unix & Linux的文本处理工具 -- grep, sed & awk

如何使用 awk 或 grep 从标题中提取电子邮件字段