Isso é tudo sed
work, você não precisa de ferramentas extras:
Digamos que você queira adicionar foo
no final da linha contendo f
e bar
no final das linhas sem f
, mas com b
sed '/f/{
s/$/foo/
b
}
/b/s/$/bar/'
Você pode "endereçar" linhas com /pattern/
, então os seguintes comandos são executados somente se contiverem o padrão. Portanto, no exemplo, apenas as linhas que contêm f
acionam a execução da substituição s
e b
(o grupo {}
os comandos, portanto, tudo dentro é aplicado apenas se o endereço corresponder. O b
de ramificações no final do script para evitar acrescentar outra sequência a um b
correspondente.
Diferentes abordagens sem ramificação:
sed '/f/s/$/foo/;s/^[^f]*b[^f]*$/&bar/'
Como exercício, você mesmo pode descobrir isso com algum conhecimento de sed
, usando man sed
se necessário.