首页 > 解决方案 > 如何使用 grep 或 awk 打印出特定的块?

问题描述

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

例如 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”结尾的块。

我不知道如何解决这个问题。您的帮助将不胜感激:)

标签: awkscriptinggrepksh

解决方案


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

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

推荐阅读