Chinaunix
标题:
同一个IP替换成不同的IP
[打印本页]
作者:
lijixing
时间:
2019-07-04 12:47
标题:
同一个IP替换成不同的IP
各位大神,我有很多文本要处理,但是核心是IP或域名的替换,我整理了一下格式大概如下 。搞了好久没搞定。哪位大神给下思路。
原文本:
VAR1_SERVER = [{'addr': ('172.100.101.249', 9300), 'timeout': 2000}, {'addr': ('172.100.101.249', 9300), 'timeout': 2000},]
VAR2_SERVER = [
{'addr': ('172.100.101.249', 4530), 'timeout': 10000, 'rule':[('txamt','<',200)]},
{'addr': ('172.100.101.249', 4531), 'timeout': 10000, 'rule':[('txamt','<',200)]},
{'addr': ('172.100.101.249', 4530), 'timeout': 10000, 'rule':[('txamt','<',200)]},
{'addr': ('172.100.101.249', 4531), 'timeout': 10000, 'rule':[('txamt','<',200)]},
]
VAR3 = [
{'addr': ('172.100.101.249', 4330), 'timeout': 15000},
{'addr': ('172.100.101.249', 4330), 'timeout': 15000},
{'addr': ('172.100.101.249', 4331), 'timeout': 15000},
{'addr': ('172.100.101.249', 4331), 'timeout': 15000},
]
VAR4 = {'addr': ('172.100.101.249', 5330), 'timeout': 15000}
想要的结果:
VAR1_SERVER = [{'addr': ('10.1.1.1', 9300), 'timeout': 2000}, {'addr': ('10.1.1.2', 9300), 'timeout': 2000},]
VAR2_SERVER = [
{'addr': ('10.1.1.1', 4530), 'timeout': 10000, 'rule':[('txamt','<',200)]},
{'addr': ('10.1.1.1', 4531), 'timeout': 10000, 'rule':[('txamt','<',200)]},
{'addr': ('10.1.1.2', 4530), 'timeout': 10000, 'rule':[('txamt','<',200)]},
{'addr': ('10.1.1.2', 4531), 'timeout': 10000, 'rule':[('txamt','<',200)]},
]
VAR3 = [
{'addr': ('10.1.1.1', 4330), 'timeout': 15000},
{'addr': ('10.1.1.2', 4330), 'timeout': 15000},
{'addr': ('10.1.1.1', 4331), 'timeout': 15000},
{'addr': ('10.1.1.2', 4331), 'timeout': 15000},
]
VAR4 = {'addr': ('10.1.1.1', 5330), 'timeout': 15000}
作者:
wh7211
时间:
2019-07-04 15:27
回复
1#
lijixing
awk '/^VAR1/||/^VAR3/{a=1}/^VAR2/{b=1}{d=split($0,c,"},");d=d>2?d-1:1;for(i=1;i<=d;i++){if(a){f=e%2==0?10.1.1.1:10.1.1.2}else if(b){f=e<2?10.1.1.1:10.1.1.2}else{f=10.1.1.1};if(sub(/172.100.101.249/,f)){e++}}}/[]}]$/{a=b=e=0;f=""}1' file
复制代码
作者:
lijixing
时间:
2019-07-04 17:24
回复
3#
wh7211
hi,我这里的var1 ,var2,var3 只是举例,实际场景中都是未知的变量名。有非常多。
作者:
cfwyy
时间:
2019-07-05 07:56
同一个IP换成不同的,其它还有什么规则?不然怎么知道同一个IP要换成哪个IP ?
作者:
wh7211
时间:
2019-07-06 12:56
回复
4#
lijixing
搞了好久没搞定。哪位大神给下思路。
替换规则是什么
作者:
csccyab
时间:
2019-07-06 15:12
一开始也觉得問題沒有規則,所以回答的兴趣也沒有
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2