没有得到sed错误

时间:2016-01-11 20:32:23

标签: linux sed

我尝试使用以下sed命令在文件中追加一行

    sed -i  's/id="1asda"/id="1asda"\n peer="120"/g' a.xml.

现在的问题是,即使我给出了错误的id,sed也没有弹出错误。如果找不到模式,怎么会出错。

2 个答案:

答案 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