- 论坛徽章:
- 1
|
下面是原始文本:- {"name":"ip":[
- {"name":"remote":[
- {"name":"100.160.10.228.ini" },
- {"name":"100.160.10.229.ini" },
- ]},
- {"name":"Solr_100.30.51.15_apache+jsp.ini"},
- {"name":"Solr_100.30.51.16_apache+jsp(old).ini"},
- {"name":"Solr_100.30.51.17_web-online.ini"},
- {"name":"Solr_100.30.51.18_web-online.ini"},
- {"name":"Solr_100.30.51.19_web-online.ini"},
- {"name":"Solr_100.30.51.20_web-online.ini"},
- {"name":"Solr_100.30.51.7_test.ini"}
- ]
- }
复制代码 我想得到的结果是:- {"name":"ip":[
- {"name":"remote":[
- {"name":"100.160.10.228.ini", "cmd":"test@100.160.10.228" },
- {"name":"100.160.10.229.ini", "cmd":"test@100.160.10.229" },
- ]},
- {"name":"100.30.51.15_apache+jsp.ini", "cmd": "ssh test@100.30.51.15" },
- {"name":"100.30.51.16_apache+jsp(old).ini", "cmd": "ssh test@100.30.51.16" },
- {"name":"100.30.51.17_web-online.ini", "cmd": "ssh test@100.30.51.17" },
- {"name":"100.30.51.18_web-online.ini", "cmd": "ssh test@100.30.51.18" },
- {"name":"100.30.51.19_web-online.ini", "cmd": "ssh test@100.30.51.19" },
- {"name":"100.30.51.20_web-online.ini", "cmd": "ssh test@100.30.51.20" },
- {"name":"100.30.51.7_test.ini", "cmd": "ssh test@100.30.51.7" }
- ]
- }
复制代码 我用sed写了一个脚本:- sed 's/{\("name":\)".*\([0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\)\(.*\)"}/{\1"\2\3", "cmd": "ssh test@\2" }/g' test.txt
复制代码 得到的结果却是- {"name":"ip":[
- {"name":"remote":[
- {"name":"100.160.10.228.ini" },
- {"name":"100.160.10.229.ini" },
- ]},
- {"name":"0.30.51.15_apache+jsp.ini", "cmd": "ssh test@0.30.51.15" },
- {"name":"0.30.51.16_apache+jsp(old).ini", "cmd": "ssh test@0.30.51.16" },
- {"name":"0.30.51.17_web-online.ini", "cmd": "ssh test@0.30.51.17" },
- {"name":"0.30.51.18_web-online.ini", "cmd": "ssh test@0.30.51.18" },
- {"name":"0.30.51.19_web-online.ini", "cmd": "ssh test@0.30.51.19" },
- {"name":"0.30.51.20_web-online.ini", "cmd": "ssh test@0.30.51.20" },
- {"name":"0.30.51.7_test.ini", "cmd": "ssh test@0.30.51.7" }
- ]
- }
复制代码 请问:- {\("name":\)".*\([0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\)\(.*\)"}
复制代码 这句为什么不会匹配到{"name":"100.160.10.228.ini" }这些行? 这个正则虽然可以配置到 {"name":"100.30.51.18_web-online.ini"}这些行,但IP地址却变了。
能不能写个能精确匹配的正则来作为参考,非常感谢!
|
|