从文件中打印特定行
Print specific lines from file
我有一个这样的文本文件:
OBJ O1 = {
{P11},
{0}
};
OBJ O2 = {
{P21},
{P22},
{P23},
{0}
};
OBJ O3 = {
{P31},
{P32},
{0}
};
我只想打印以 OBJ O2
开始并在 OBJ O2
之后以第一个 {0}
结束的行
OBJ O2 = {
{P21},
{P22},
{P23},
{0}
};
是否有使用 cat、sed、awk 或 grep 打印这些行的解决方案?
你可以这样做:
awk '/OBJ O2/,/^};$/' file
一个 awk 替代方案(没有范围表达式),cf。
Is a /start/,/end/ range expression ever useful in awk?
awk '/^OBJ O2/{f=1} f{print; if(/};/) f=0}' file
我有一个这样的文本文件:
OBJ O1 = {
{P11},
{0}
};
OBJ O2 = {
{P21},
{P22},
{P23},
{0}
};
OBJ O3 = {
{P31},
{P32},
{0}
};
我只想打印以 OBJ O2
开始并在 OBJ O2
{0}
结束的行
OBJ O2 = {
{P21},
{P22},
{P23},
{0}
};
是否有使用 cat、sed、awk 或 grep 打印这些行的解决方案?
你可以这样做:
awk '/OBJ O2/,/^};$/' file
一个 awk 替代方案(没有范围表达式),cf。 Is a /start/,/end/ range expression ever useful in awk?
awk '/^OBJ O2/{f=1} f{print; if(/};/) f=0}' file