
&
「&」を「次の項目を除くXML特殊文字」に置き換えたいと思います。
" "
' '
< <
> >
& &
私は言及された方法を試みた。2つの文字列の間に指定された文字を置き換えますか?そして指定されたXMLタグのすべての「&」を置き換えるには、sedを使用してください。ただし、XMLエンティティ「&」の「&」を「#」に置き換えないでください。私には効果がないようです。
答え1
Perl 1行使用:
perl -pe 's/&(?!(quot|apos|lt|gt|amp);)/&/g'
この-p
フラグはPerlにsed(STDIN行を繰り返し、操作を実行し、STDOUTとして印刷)のように動作させ、ファイルではなく引数から-e
コマンドを読み取るように指示します。
正規表現置換が実行するタスクは次のとおりです。
- マッチ
&
- フォロー禁止
quot
またはapos
...amp
- セミコロン
- 使用。 。 。交換
&
- すべてのオンライン大会に適用されます。
sedのように使用してください。
perl -pe 's/&(?!(quot|apos|lt|gt|amp);)/&/g' < my-file.xml
./myscript.sh | perl -pe 's/&(?!(quot|apos|lt|gt|amp);)/&/g'