我想在XML元素中转义双引号。例如
这
<person name="Tiberius Claudius "Maximus"" sex="M">
要
<person name="Tiberius Claudius "Maximus"" sex="M">
我能够使用sed隔离属性值:
$ cat sample.xml | sed -r 's/(<person name=")(.*)(" sex.*)/\2/'
Tiberius Claudius "Maximus"
有没有办法在第二组中用"
替换双引号"
?
答案 0 :(得分:1)
perl -i~ -pe's{<person name="\K(.*?)(?=" sex)}{ $1 =~ s/"/"/gr }eg' sample.xml
或者,如果你没有5.14,
perl -i~ -pe's{<person name="\K(.*?)(?=" sex)}{ ( my $s = $1 ) =~ s/"/"/g; $s }eg' sample.xml
答案 1 :(得分:0)