基于迈克尔的解决方案,有一个单行:
awk -vline="important line" '/^SECTION 2 BEGIN$/{f=1}f&&$0==line{f=0}f&&/^SECTION END$/{print line;f=0}1'<<EOT
SECTION 1 BEGIN
some stuff
SECTION END
SECTION 2 BEGIN
some stuff
some more stuff
SECTION END
SECTION 2 BEGIN
some stuff
some more stuff
important line
SECTION END
SECTION 3 BEGIN
oops
SECTION END
EOT
输出:
SECTION 1 BEGIN
some stuff
SECTION END
SECTION 2 BEGIN
some stuff
some more stuff
important line
SECTION END
SECTION 2 BEGIN
some stuff
some more stuff
important line
SECTION END
SECTION 3 BEGIN
oops
SECTION END