Alterando o final de uma linha sempre que contiver uma string específica

2

Eu tenho um arquivo onde quero adicionar algum texto no final de cada linha sempre que ele contém uma string específica:

output(),
output(abcdefgh),

torna-se

output());
output(abcdefgh));

Então, basicamente, quero detectar o "output( remove , e adicionar ); ao final de cada linha que atenda à condição mencionada.

    
por Bassem 21.03.2017 / 11:25

2 respostas

2

No Vim:

:g/output(/ s/,$/);/

:g /pattern/ executa o comando em todas as linhas que correspondem ao pattern e o comando s , em seguida, substitui um fim de linha , por ); .

    
por 21.03.2017 / 12:13
1

Se eu entendi corretamente, você quer

otherline(),
... output(),
... output(abcdefgh),
output

será traduzido para

otherline(),
... output());
... output(abcdefgh));
output

Eu sugiro o uso do Perl:

perl -pe 's/output\(.*?\)\K,$/);/' 
    
por 21.03.2017 / 13:06