我尝试使用以下sed命令在文件中追加一行
sed -i 's/id="1asda"/id="1asda"\n peer="120"/g' a.xml.
现在的问题是,即使我给出了错误的id,sed也没有弹出错误。如果找不到模式,怎么会出错。
答案 0 :(得分:1)
sed
用于替换文字。没有什么可以替代的并不是错误。
使用grep
之类的内容来检查是否有要替换的内容。例如:
if grep -q 'id="1asda"' a.xml
then
sed -i 's/id="1asda"/id="1asda"\n peer="120"/g' a.xml
else
echo 'nothing to do' >& 2
fi
答案 1 :(得分:0)
我建议使用awk
:
awk 'BEGIN{e=1}gsub(/foo1/, "bar",$0){e=0};1;END{exit e}' file
如果没有执行替换,上面的命令将为您提供1
的返回值,否则为0
。