是否有可能在遇到错误时阻止sed写入。这样
sed -e 's/a/b/g' nonExistantFile > fileIDontWantToExist
例如将不会创建fileIDontWantToExist
。当前,它输出警告sed:无法读取nonExistantFile
:没有这样的文件或目录。但它仍会创建文件fileIDontWantToExist
。
答案 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。