- 此问题在此处已有答案**:
(17个答案)
昨天关门了。
我的示例文件是这样的:
# sample.txt
adc=lalalala
cmd="echo hihi && echo yoyo"
cda=lolololo
我希望将cmd
行替换为:
old=`cat ./sample.txt|grep cmd`
app=' && echo dudu"'
new=${old:0:-1}${app}
sed -i "s/${old}/${new}/g" ./sample.txt
预期结果应该是
adc=lalalala
cmd="echo hihi && echo yoyo && echo dudu"
cda=lolololo
然而结果是:
adc=lalalala
cmd="echo hihi cmd="echo hihi && echo yoyo"cmd="echo hihi && echo yoyo" echo yoyo cmd="echo hihi && echo yoyo"cmd="echo hihi && echo yoyo" echo dudu"
cda=lolololo
我也试过sed -i "s#${old}#${new}#g" ./sample.txt
,但没有区别。我能得到一些帮助吗?非常感谢
2条答案
按热度按时间v1uwarro1#
试试这样
注意你必须避开
&
。5m1hhzi42#