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).