我在文件中有一个代码块,如下所示:
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
到适当的位置进行编辑。