遇到错误时防止sed写入

时间:2019-06-24 10:17:43

标签: sed error-handling

是否有可能在遇到错误时阻止sed写入。这样

sed -e 's/a/b/g' nonExistantFile > fileIDontWantToExist

例如将不会创建fileIDontWantToExist。当前,它输出警告sed:无法读取nonExistantFile:没有这样的文件或目录。但它仍会创建文件fileIDontWantToExist

2 个答案:

答案 0 :(得分:2)

输出重定向由Shell而不是sed扩展。您需要这样的if语句:

if sed '...' input.file > output.file.tmp ; then
    mv output.file.tmp output.file
else
    rm output.file.tmp
fi

答案 1 :(得分:2)

一个衬板:

test -f nonExistantFile && sed -e 's/a/b/g' nonExistantFile > fileIDontWantToExist

test的调用将失败,因此不会调用sed。