sed で「<」および「>」文字をエスケープするにはどうすればよいですか。
タグ間のテキストを置き換える必要がある xml ファイルがいくつかあります。「>」および「<」文字をエスケープするにはどうすればよいですか。
> と < の問題は、シェルで出力をファイルにリダイレクトするという特別な意味があることです。したがって、バックスラッシュは機能しません。
Ok。自分で見つけました。引用符を使用します。
$ sed -i "s/>foo</>bar</g" file
バックスラッシュでエスケープする
それらの前にバックスラッシュを置くか、一重引用符または二重引用符で囲みます。考え直して、あなたの質問はもっと明確にする必要があると思います。sed を使用して XML ファイルを処理しようとしていて、タグの間にあるものを取得したいですか? 次に、次のようにします。
sed -re 's@(<TAG.*?>).*?(</TAG>)@\1hi\2@' test.xml