foo: bar
foo: moo
blarg
i am on vacation
foo: goose
foo: lucy
foo: moose
foo: stucky
groover@monkey.org
foo: bozo
grimace@gonzo.net
dear sir - blargo blargo
foo: goon
foo: sloppy
foo: saudi
gimme gimme gimme
i have something for you
foo: mad
foo: happy
foo: foo
I want:
blarg
i am on vacation
foo: goose
groover@monkey.org
foo: bozo
grimace@gonzo.net
dear sir - blargo blargo
foo: goon
gimme gimme gimme
i have something for you
foo: mad
Perhaps, if foo: xxx is not above, keep foo: xxx and any other lines not containing foo: ?
$ cat data
foo: bar
foo: moo
blarg
i am on vacation
foo: goose
foo: lucy
foo: moose
foo: stucky
groover@monkey.org
foo: bozo
grimace@gonzo.net
dear sir - blargo blargo
foo: goon
foo: sloppy
foo: saudi
gimme gimme gimme
i have something for you
foo: mad
foo: happy
foo: foo
Using SED:
$ cat spacegoose.sed
#n
/^foo:/!{
:top
p
/^foo:/!{
n
b top
}
}
$ sed -f spacegoose.sed data
blarg
i am on vacation
foo: goose
groover@monkey.org
foo: bozo
grimace@gonzo.net
dear sir - blargo blargo
foo: goon
gimme gimme gimme
i have something for you
foo: mad
If you require a blank line after each sequence:
$ cat spacegooseLF.sed
#n
/^foo:/!{
:top
p
/^foo:/!{
n
b top
}
s/.*//p
}
$ sed -f spacegooseLF.sed data
blarg
i am on vacation
foo: goose
groover@monkey.org
foo: bozo
grimace@gonzo.net
dear sir - blargo blargo
foo: goon
gimme gimme gimme
i have something for you
foo: mad