2016-10-18 2 views
1

シェルスクリプトでsedコマンドを使用して、&を編集すると、osx(unix)環境でxmlファイルのファイル内容が置き換えられます。 -eで一時ファイルを作成するのを避ける方法はありますか?私はスクリプトでsedを使ってファイルを編集するために次のことをしています。シェルスクリプトでsedツールを使用しているときに、 `-e`で余分なファイルを作成しないようにするにはどうしたらいいですか?

sed -i -e 's/abc/xyz/g' /PathTo/MyEditableFile.xml 

sed上記のコマンドは、素晴らしい作品が、私はそこ-eで余分なファイルの作成を避けることができますどのように

/PathTo/MyEditableFile.xml-eなどの余分なファイルが作成されます

sedに一時フォルダのパスを設定して、/tmp/に一時ファイルを作成するようなオプションを試しました。これと同じように:

sed -i -e 's/abc/xyz/g' /PathTo/MyEditableFile.xml >/tmp 

しかし、あなたが場所(-i)内のファイルを編集していると

+0

も参照してください。https://stackoverflow.com/documentation/sed/3640/in-place-editing/12529/portable-use#t = 201610180932445369797とhttps://stackoverflow.com/questions/7573368/in-place-edits-with-sed-on-os-x – Sundeep

答えて

1

を動作するようにdoesntのようで、OS X sedは、必須のバックアップファイル名が必要です。あなたが使用することができます

からi ""をこの問題を回避するために:

sed -i "" -e 's/abc/xyz/g' /PathTo/MyEditableFile.xml 
+0

ありがとう。できます。 '-e'を削除しても私にとってはうまくいきません。実際には複雑なsedコマンドを実行している可能性があります。 "sed -i" "-e 's/searchcriteriawith =" [^ "] */searchcriteriawith ="' $ new_value_frmSome_var '/ g' MyEditableFile.xml' –

+0

私はこの複雑さを私の質問に含めたくありませんでした。 。サンプルのsedコマンドを簡略化しました。 –

+0

@NelsonP問題ありません。その部分も削除しました。 – heemayl

関連する問題