Bash - sed命令。如何不覆盖旧字符串?

时间:2014-09-30 07:41:36

标签: bash sed

我正在写一个bash脚本。这个bash脚本的输出是一个配置文件,我是从模板文件创建的。我想使用sed命令,我可以将###member###指定为匹配模式,并AA作为替换。但是当我使用新的替换BB创建新的配置文件时,旧的字符串AA将被覆盖。我不想覆盖那个旧字符串AA;我只需要在BB后添加AA

示例:

members     ###members###

members     aa, bb, cc, ...

我不知道是否可以使用sed命令完成此任务。

1 个答案:

答案 0 :(得分:0)

这可能适合你(GNU sed):

sed '/###members###/{:a;N;/aa/s//&BB/;Ta}' file

查找包含###members###的行,然后在其中添加以下行,直到这些行包含aa,然后将BB追加到aa