每当包含特定字符串时更改行尾

每当包含特定字符串时更改行尾

我有一个文件,每当它包含特定字符串时,我想在每行末尾添加一些文本:

output(),
output(abcdefgh),

变成

output());
output(abcdefgh));

所以基本上我想检测 "output( 删除,并添加 );到满足上述条件的每一行的末尾。

答案1

在维姆中:

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

:g /pattern/在与 匹配的所有行上运行该命令pattern,然后该s命令将行尾替换,);

答案2

如果我理解正确的话,你想要

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

将被翻译成

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

我建议使用 Perl:

perl -pe 's/output\(.*?\)\K,$/);/' 

相关内容