0
xml内の属性を排他的にsed
で置き換えようとしています。xml属性をスラッシュを含む文字列に置き換えます。
すでにStackOverflowで、文字で構成される属性で動作するメソッドが見つかりました。ただし、スラッシュを含む属性の場合は/
では機能しません。
私が持っているXML
に:
<?xml version="1.0" encoding="UTF-8"?>
<Environment WorkingFolder="" Provider="">
<tag>
</tag>
</Environment>
私はXML
は次のようになりますWorkingFolder="/some/path/"
でWorkingFolder=""
を交換しようとしている:
<?xml version="1.0" encoding="UTF-8"?>
<Environment WorkingFolder="/some/path/" Provider="">
<tag>
</tag>
</Environment>
私ならば、私はエラーを取得します試してみてください:
sed -E 's/WorkingFolder="[^"]*"/WorkingFolder="/some/path/"/' file.xml
スラッシュのため/
です。スラッシュ/
を逃れるために、別のsed
のコマンドを使用している私がしたので、何
:
path=$(echo /some/path/ | sed 's_/_\\/_g')
sed -E 's/WorkingFolder="[^"]*"/WorkingFolder="$path"/' file.xml
問題は今$path
変数があるため、単一引用符'
で拡大しないということです。