Remove if the above line matches pattern

but keep if does not

I have a file: --> my.out

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: ?

Can sed help me? I tried this:

sed '/foo: /{
        N
        /.*/D
        }' my.out

but it didn't totally do it ...

Thanks for any help!

Hi, spacegoose:

$ 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

Using AWK:

awk '!/^foo:/,/^foo/'

If you require a blank line after each sequence:

awk '!/^foo:/,/^foo/{print; if(/^foo/)print ""}'

Cheers,
Alister

Thanks Alister,

The first example works (thanks :), but the second one yields:

awk: syntax error near line 1
awk: illegal statement near line 1

I'm using Solaris.

Hi.

On Solaris, use /usr/xpg4/bin/awk, or nawk