打印文件中的特定行

时间:2019-07-22 15:12:37

标签: search awk sed grep cat

我有一个像这样的文本文件:

OBJ O1 = {
{P11},
{0}
};

OBJ O2 = {
{P21},
{P22},
{P23},
{0}
};

OBJ O3 = {
{P31},
{P32},
{0}
};

我只想打印以OBJ O2开始并以{0}之后的第一个OBJ O2结尾的行

OBJ O2 = {
{P21},
{P22},
{P23},
{0}
};

是否可以使用cat,sed,awk或grep打印这些行?

2 个答案:

答案 0 :(得分:0)

您可以这样做:

awk '/OBJ O2/,/^};$/' file

答案 1 :(得分:0)

一个 awk 替代方案(没有范围表达式),参见。 Is a /start/,/end/ range expression ever useful in awk?

awk '/^OBJ O2/{f=1} f{print; if(/};/) f=0}' file
相关问题