Um comando de edição sed deve ser finalizado por ; ou uma nova linha literal. O GNU sed é muito indulgente com isso.
Seu script:
/foo/{/bar/{;p;}}
Expandido:
/foo/{
/bar/{
p
}
}
Isso funcionaria como um script sed alimentado para sed a -f .
Se nos certificarmos de substituir as novas linhas com ; (necessário apenas no final dos comandos e {...} grupos de comandos) para que possamos usá-lo na linha de comando, obtemos
/foo/{/bar/{p;};}
Isso funciona com o OpenBSD sed (o original não, devido a esse segundo ; ausente).
Neste caso particular, isso pode ser ainda mais simplificado para
/foo/{/bar/p;}