複数行のxmlを含むファイルがあります。ファイルの特定の部分を置き換えたいのですが。ファイルの一部に引用符(")が含まれていますが、これを置き換えます。私はで引用符をエスケープしようとしましたが、\これは私のファイルの結果に基づいて機能しているとは思いません。
これが私のsedコマンドの例です:
sed -e "s/\"text\"/'text'/ig" file.xml > temp.tmp
これは、sedコマンドで引用符をエスケープする方法ですか、それとも私は何か間違っていますか?
だから、
—
jbranchaud 2011年
\"sedコマンドで引用符をエスケープする正しい方法はありますか?
sedは対象外:sedはエスケープを必要とせず、サポートもしません
—
Gilles「SO-邪悪なことをやめなさい」
"。しかし、あなたのシェルコマンドは二重引用符で囲まれた文字列を使用しており、\"そこで正しいです。sedプログラムは見ることs/"text"/'text'/igの引数として-e。
@ギレススペースはどうですか?sedは空白を理解し、尊重していますか?たとえば、コマンドに次のスペースが含まれている場合
—
jbranchaud 2011年
s/\"text\" /'text'/igのみ検索さ"text" れますか?
スペースは完全に一致する必要があります。この対話を続けるのではなく、いくつかのサンプル入力と対応する必要な出力を投稿することをお勧めします(おそらく、引用を変更する必要がある理由を説明します)。それ
—
Gilles 'SO-悪をやめる'
sedがその仕事に適したツールであるかどうかさえはっきりしていません。おそらくXMLパーサーが必要でしょう。
"text"と'text'。もちろん、それは何もしません"othertext"。いくつかの入力行と対応する望ましくない出力を表示し、代わりに必要な出力を説明します。