使用 sed 在行尾附加单词

使用 sed 在行尾附加单词

我在文件中有一个代码块,如下所示:

BalancerMember http://snode1:80 min=1 max=1000 loadfactor=1  timeout=30 keepalive=on route=tc_snode1
BalancerMember http://snode2:80 min=1 max=1000 loadfactor=1  timeout=30 keepalive=on route=tc_snode2

我想搜索所有具有tc_关键字的行并status=D在这些行的末尾添加。那么,上面的条目就会变成这样

BalancerMember http://snode1:80 min=1 max=1000 loadfactor=1  timeout=30 keepalive=on route=tc_snode1 status=D
BalancerMember http://snode2:80 min=1 max=1000 loadfactor=1  timeout=30 keepalive=on route=tc_snode2 status=D

我使用以下命令来实现这一点:

sed -i '/tc_/a status=D' app.conf

但我可以看到status=D正在换行之后。我不想为此换行。应附加一个“ ”(空格)。

答案1

尝试

sed  -e '/tc_/s/$/ status=D/'

在哪里

  • /tc_/在找到 tc_ 的行上,
  • s代替,
  • /$行结束,
  • / status=D/通过这个字符串

如果看起来不错,请添加-i到适当的位置进行编辑。

相关内容