запретить sed писать при возникновении ошибки - PullRequest
1 голос
/ 24 июня 2019

Возможно ли запретить запись в sed при возникновении ошибки.Например,

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

не создаст fileIDontWantToExist, например.В настоящее время выводится предупреждение sed: not read nonExistantFile: Нет такого файла или каталога.Но он все равно создает файл fileIDontWantToExist.

Ответы [ 2 ]

2 голосов
/ 24 июня 2019

Один вкладыш:

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

Вызов test завершится неудачей, поэтому sed не будет вызываться.

2 голосов
/ 24 июня 2019

Перенаправление вывода расширяется оболочкой, а не sed. Вам нужно заявление if, например:

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