sed 修改xml键值对

     我们在工作中少不了与xml接触,有时需要修改xml中的属性值,如果xml文件比较冗长且需要修改的东西较多,那么手动修改就是件麻烦事。可以尝试使用sed命令来替我们做这件事。

   test.xml的内容如下:

   <val id="AA" name="c1"/>

   <val id="BB" name="d1"/>

   假设我们要把id为AA的记录的name修改为c2 , 使用如下的命令

   sed -i -E 's/id="AA"\s+name="[^"]+"/id="AA" name="c2"/' test.xml


   把这条命令写入脚本:

  1 sed-E.sh

   #!/bin/sh
   echo "input file is $1"

   if [ $# -eq 1 ]; then
        sed -E 's/id="AA"\s+name="[^"]+"/id="AA" name="c2"/' $1 
   else
        echo "parameter is error"

   fi

   cat $1


  2 sed-i-E.sh

  #!/bin/sh
   echo "input file is $1"

   if [ $# -eq 1 ]; then
        sed -i -E 's/id="AA"\s+name="[^"]+"/id="AA" name="c2"/' $1 
   else
        echo "parameter is error"

   fi

   cat $1


  3 recover.sh

  #!/bin/sh
   echo "input file is $1"

   if [ $# -eq 1 ]; then
        sed -i -E 's/id="AA"\s+name="[^"]+"/id="AA" name="c1"/' $1 
   else
        echo "parameter is error"

   fi

   cat $1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值