A maneira comum de obter um grupo de comandos executados juntos
(por exemplo, sujeito a uma condição como uma correspondência de padrão)
é agrupá-los com chaves.
Com o GNU sed :
sed -n '/PostScript/{p; b}; /text/!p'
Sem agrupamento e com qualquer ramificação sed no final do script nos dois casos e exclua as outras linhas:
sed -e '/PostScript/b' -e '/text/!b' -e 'd'
Além disso, para o registro:
I thought it was acceptable to specify multiple commands (e.g.
bp) after a pattern.
Editar comandos para um endereço (o que você chama de padrão é um endereço de contexto) é uma coisa e as bandeiras s ubstitution g , p , w e no. são outra coisa.
A sintaxe para o último é
s/pattern/replacement/[flags]
em outras palavras, os sinalizadores podem ser combinados (por exemplo, gp ou 7w outfile ), enquanto a sintaxe para o primeiro é
[2addr] {editing command
editing command
...
}
em outras palavras, os comandos devem ser separados por novas linhas (em alguns casos, podem ser separados por ponto e vírgula).