我有一个像这样的文本文件:
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打印这些行?
答案 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