与shell脚本匹配后插入第二行

时间:2019-02-07 17:57:01

标签: xml linux bash

在XML中,脚本需要找到oneFi information="123456789",然后需要插入<value maxPAN="19" minPAN="4" prefix="XXXXXX"/>,如预期的那样。

<oneFi information="123456789">
        <bin _list="1">
          <value maxPAN="19" minPAN="4" prefix="123648"/>
          <value maxPAN="19" minPAN="4" prefix="547892"/>
        </bin>
      </ondotFi> 
<oneFi information="895781546">
        <bin _list="1">
          <value maxPAN="19" minPAN="4" prefix="124578"/>
          <value maxPAN="19" minPAN="4" prefix="546789"/>
        </bin>
      </ondotFi>

预期输出:

<oneFi information="123456789">
        <bin _list="1">
          <value maxPAN="19" minPAN="4" prefix="XXXXXX"/>
          <value maxPAN="19" minPAN="4" prefix="123648"/>
          <value maxPAN="19" minPAN="4" prefix="547892"/>
        </bin>
      </ondotFi> 
<oneFi information="895781546">
        <bin _list="1">
          <value maxPAN="19" minPAN="4" prefix="124578"/>
          <value maxPAN="19" minPAN="4" prefix="546789"/>
        </bin>
      </ondotFi>

预先感谢您的帮助。

1 个答案:

答案 0 :(得分:-1)

尝试一下

xmlstarlet ed  -s '//oneFi[@information="123456789"]' -t elem -n 'value'   \ 
               -s '//oneFi[@information="123456789"]/value'  attr -n 'maxPAN' -v '19' \
                   attr -n 'minPAN' -v '4' attr -n 'prefix' -v 'XXXXXX'    file.xml