在xml文件中用连接的值动态搜索和替换字符串
需要将xml文件中的字符串替换为字符串加增量值,还需要应用于目录中的所有文件。当我们知道元素中的值'NA',但大多数情况下值未知时,此awk命令将被替换在xml文件中用连接的值动态搜索和替换字符串,xml,search,replace,awk,sed,Xml,Search,Replace,Awk,Sed,需要将xml文件中的字符串替换为字符串加增量值,还需要应用于目录中的所有文件。当我们知道元素中的值'NA',但大多数情况下值未知时,此awk命令将被替换 awk '/ID>\/{sub(/ID>NA/,"ID>NA"++n)}; 1' File1.xml <ID>NA</ID> <Subject>ASDF</Subject> ... <ID>LONEY</ID> <Subject>ASDF&
awk '/ID>\/{sub(/ID>NA/,"ID>NA"++n)}; 1'
File1.xml
<ID>NA</ID>
<Subject>ASDF</Subject>
...
<ID>LONEY</ID>
<Subject>ASDF</Subject>
...
<ID>ZXS01DR</ID>
<Subject>ASDF</Subject>
...
<ID>QWDRTYYUUU9282</ID>
<Subject>ASDF</Subject>
<ID>NA_1</ID>
<Subject>ASDF</Subject>
...
<ID>LONEY_2</ID>
<Subject>ASDF</Subject>
...
<ID>ZXS01DR_3</ID>
<Subject>ASDF</Subject>
...
<ID>QWDRTYYUUU9282_4</ID>
<Subject>ASDF</Subject>
NA
ASDF
...
孤独的
ASDF
...
ZXS01DR
ASDF
...
QWDRTYYUU9282
ASDF
预期结果:
File1.xml
<ID>NA_1</ID>
<Subject>ASDF</Subject>
...
<ID>LONEY_2</ID>
<Subject>ASDF</Subject>
...
<ID>ZXS01DR_3</ID>
<Subject>ASDF</Subject>
...
<ID>QWDRTYYUUU9282_4</ID>
<Subject>ASDF</Subject>
NA_1
ASDF
...
LONEY_2
ASDF
...
ZXS01DR_3
ASDF
...
qwdrtyyuu9282_4
ASDF
要编辑XML文件,请使用适当的XML处理工具。例如:
对于gensub(),使用GNU awk:
$awk'/ID>/{$0=gensub(/ID>[^[^ExpectedResult:File1.xml NA_1 ASDF…LONEY_2 ASDF…ZXS01DR_3 ASDF…QWDRTYYUUU9282_4 ASDF
xsh未在我们的环境中设置
$ awk '/ID>/{$0=gensub(/ID>[^<]+/,"&_"++n,1)} 1' file
<ID>NA_1</ID>
<Subject>ASDF</Subject>
...
<ID>LONEY_2</ID>
<Subject>ASDF</Subject>
...
<ID>ZXS01DR_3</ID>
<Subject>ASDF</Subject>
...
<ID>QWDRTYYUUU9282_4</ID>
<Subject>ASDF</Subject>
$ awk 'match($0,/.*ID>[^<]+/){$0=substr($0,1,RLENGTH) "_"++n substr($0,RLENGTH+1)}1' file
<ID>NA_1</ID>
<Subject>ASDF</Subject>
...
<ID>LONEY_2</ID>
<Subject>ASDF</Subject>
...
<ID>ZXS01DR_3</ID>
<Subject>ASDF</Subject>
...
<ID>QWDRTYYUUU9282_4</ID>
<Subject>ASDF</Subject>