xmlファイルを解析してコマンドを実行するPythonスクリプトがあります。xml
別のxmlファイルを読み取って編集したい。そのために私はperlコマンドを使用しました
"perl -pi -0777 -e 's@<en:TagName>.*?</en:TagName>@<en:TagName>new-value</en:TagName>@sg'FileName.xml"
これは、シェルスクリプトによって解析されるxmlファイルに追加しました。
<cmd>perl -pi -0777 -e 's@<en:TagName>.*?</en:TagName>@<en:TagName>new-value</en:TagName>@sg'FileName.xml</cmd>
ここで私のPythonスクリプトは<en:TagName>
タグとして扱われており、それを解析できません。そこで"perl -pi -0777 -e 's#<en:TagName>.*?<en:TagName>#<en:tagName>new-value</en:TagName>#sg' FileName.xml"
、区切り文字として「#」を追加して使用しました(@は、使用しているシェルスクリプトの特殊文字であるため)
#を入力しても、目的の結果を得ることができません。置き換える代わりに、最後に新しい値を追加します。