sed脚本修改xml文件指定字符串

需求:压力测试,发送某报文10000笔,测试系统稳定性,处理业务速度。

在使用脚本进行发送时,不可避免需要修改某些关键字段,sed可以满足这个需求:

源文件 autoput.xml 如下:

H:{0000  313338559655  ...}
S:{数字签名域}
...
<Msgid>20200331100200</Msgid>
<date>20200315</date>
<industparty>313338559655</industparty>

....

在进行批量发送时,需要修改其中的标签<Msgid></Msgid> 希望其按照一定规律自增,避免系统查重。具体操作如下:

1.创建一个txt文件,保存初始的<Msgid></Msgid>标签,如msgid.txt。

2.使用sed命令修改autoput.xml中的<Msgid>标签,并把修改后的标签写入到msgid.txt中,下次再需要发送时,直接执行脚本即可。

3.具体实现:

    ①msgid.txt文档只写一行存放第一次发送时的序列号如 <Msgid>20200312100200</Msigd>

    ②编写shell脚本:seq.sh。   

#!/bin/bash

#自动发送脚本,模拟发送10000笔

msgid=`cut  -c8-21  msgid.txt`

count=10000

while [ $count -gt 0 ] 

do
    msgid=`expr $msgid + 1`
    count=`expr $count - 1`
     
    sed  -ir    's@<Msgid>.*</Msgid>@<Msgid>'"$msgid"'</Msgid>@g'   autoput.xml

    #发报命令

    toputx    topcpg   6100    6200  autoput.xml   

done

#重新写入到文件,再次使用直接执行脚本即可。
echo  "<Msgid>$msgid</Msgid>"  >msgid.txt  

注意事项:

       ①msgid=`cut  -c8-21   msgid.txt` 截取msgid.txt文件的8到21位,作为msgid起始值 此处的引号是反引号,位于ESC键下。

       ②sed    -i   将修改原文件。-r表示使用正则表达式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值