需求:需要批量替换IP,以下3.26全部需要成3.27。
[qipai@beta-27 hall0]$ grep -wR '10.0.3.26' ./* ./action.log:12-19 18:37:44 | Http Game : http://10.0.3.26 ./action.log:12-19 18:37:44 | Http Download : http://10.0.3.26 ./action.log:12-19 18:37:44 | Http SDK : http://10.0.3.26 ./action.log:12-19 18:37:44 | Servers 00/01 : 02 : 10.0.3.26 : 127.0.0.1 : 127.0.0.1 : srv1 ./script/configure.json: "http_game":"http://10.0.3.26:8040" ./script/configure.json: "http://10.0.3.26:8089" ./script/configure.json: "http://10.0.3.26:8089/headpics/head01_1.png", ./script/configure.json: "http://10.0.3.26:8089/headpics/head01_2.png", ./script/configure.json: "http://10.0.3.26:8089/headpics/head01_3.png", ./script/configure.json: "http://10.0.3.26:8089/headpics/head01_4.png", ./script/configure.json: "http://10.0.3.26:8089/headpics/head01_5.png", ./script/configure.json: "http://10.0.3.26:8089/headpics/head01_6.png", ./script/configure.json: "http://10.0.3.26:8089/headpics/head02_1.png", ./script/configure.json: "http://10.0.3.26:8089/headpics/head02_2.png", ./script/configure.json: "http://10.0.3.26:8089/headpics/head02_3.png", ./script/configure.json: "http://10.0.3.26:8089/headpics/head02_4.png", ./script/configure.json: "http://10.0.3.26:8089/headpics/head02_5.png", ./script/configure.json: "http://10.0.3.26:8089/headpics/head02_6.png" ./script/configure.json: "http://10.0.3.26:8089/headpics/head01_1.png", ./script/configure.json: "http://10.0.3.26:8089/headpics/head01_2.png", ./script/configure.json: "http://10.0.3.26:8089/headpics/head01_3.png", ./script/configure.json: "http://10.0.3.26:8089/headpics/head01_4.png", ./script/configure.json: "http://10.0.3.26:8089/headpics/head01_5.png", ./script/configure.json: "http://10.0.3.26:8089/headpics/head01_6.png" ./script/configure.json: "http://10.0.3.26:8089/headpics/head02_1.png", ./script/configure.json: "http://10.0.3.26:8089/headpics/head02_2.png", ./script/configure.json: "http://10.0.3.26:8089/headpics/head02_3.png", ./script/configure.json: "http://10.0.3.26:8089/headpics/head02_4.png", ./script/configure.json: "http://10.0.3.26:8089/headpics/head02_5.png", ./script/configure.json: "http://10.0.3.26:8089/headpics/head02_6.png" ./script/configure.json: "http://10.0.3.26:8089/headpics/head_verifying.png" ./script/control.json: "http.download":"http://10.0.3.26", ./script/control.json: "http.game":"http://10.0.3.26", ./script/control.json: "http.sdk":"http://10.0.3.26", ./script/control.json: "internet":"10.0.3.26", ./script/control.json: "internet":"10.0.3.26", ./script/control.json: "internet":"10.0.3.26", ./source/tygame-sdk/configure/game/game_clientid.py: 'http_game': "http://10.0.3.26:8040", ./source/tygame-sdk/configure/game/global_avatar.py:photoDownloadHttpDomain = 'http://10.0.3.26:8089' ./source/tygame-sdk/configure/server/online.json: "http.sdk" : "http://10.0.3.26", ./source/tygame-sdk/configure/server/online.json: "internet" : "10.0.3.26",
sed 结合 grep 实现
[qipai@beta-27 hall0]$ sed 's#10.0.3.26#10.0.3.27#g' -i `grep -wRl '10.0.3.26' ./*`
grep参数说明:
-w 精确匹配
-R 递归查找
-l 获取文件路径
查看结果:
[qipai@beta-27 hall0]$ grep -wR '10.0.3.27' ./* ./action.log:12-19 18:37:44 | Http Game : http://10.0.3.27 ./action.log:12-19 18:37:44 | Http Download : http://10.0.3.27 ./action.log:12-19 18:37:44 | Http SDK : http://10.0.3.27 ./action.log:12-19 18:37:44 | Servers 00/01 : 02 : 10.0.3.27 : 127.0.0.1 : 127.0.0.1 : srv1 ./script/configure.json: "http_game":"http://10.0.3.27:8040" ./script/configure.json: "http://10.0.3.27:8089" ./script/configure.json: "http://10.0.3.27:8089/headpics/head01_1.png", ./script/configure.json: "http://10.0.3.27:8089/headpics/head01_2.png", ./script/configure.json: "http://10.0.3.27:8089/headpics/head01_3.png", ./script/configure.json: "http://10.0.3.27:8089/headpics/head01_4.png", ./script/configure.json: "http://10.0.3.27:8089/headpics/head01_5.png", ./script/configure.json: "http://10.0.3.27:8089/headpics/head01_6.png", ./script/configure.json: "http://10.0.3.27:8089/headpics/head02_1.png", ./script/configure.json: "http://10.0.3.27:8089/headpics/head02_2.png", ./script/configure.json: "http://10.0.3.27:8089/headpics/head02_3.png", ./script/configure.json: "http://10.0.3.27:8089/headpics/head02_4.png", ./script/configure.json: "http://10.0.3.27:8089/headpics/head02_5.png", ./script/configure.json: "http://10.0.3.27:8089/headpics/head02_6.png" ./script/configure.json: "http://10.0.3.27:8089/headpics/head01_1.png", ./script/configure.json: "http://10.0.3.27:8089/headpics/head01_2.png", ./script/configure.json: "http://10.0.3.27:8089/headpics/head01_3.png", ./script/configure.json: "http://10.0.3.27:8089/headpics/head01_4.png", ./script/configure.json: "http://10.0.3.27:8089/headpics/head01_5.png", ./script/configure.json: "http://10.0.3.27:8089/headpics/head01_6.png" ./script/configure.json: "http://10.0.3.27:8089/headpics/head02_1.png", ./script/configure.json: "http://10.0.3.27:8089/headpics/head02_2.png", ./script/configure.json: "http://10.0.3.27:8089/headpics/head02_3.png", ./script/configure.json: "http://10.0.3.27:8089/headpics/head02_4.png", ./script/configure.json: "http://10.0.3.27:8089/headpics/head02_5.png", ./script/configure.json: "http://10.0.3.27:8089/headpics/head02_6.png" ./script/configure.json: "http://10.0.3.27:8089/headpics/head_verifying.png" ./script/control.json: "http.download":"http://10.0.3.27", ./script/control.json: "http.game":"http://10.0.3.27", ./script/control.json: "http.sdk":"http://10.0.3.27", ./script/control.json: "internet":"10.0.3.27", ./script/control.json: "internet":"10.0.3.27", ./script/control.json: "internet":"10.0.3.27", ./source/tygame-sdk/configure/game/game_clientid.py: 'http_game': "http://10.0.3.27:8040", 匹配到二进制文件 ./source/tygame-sdk/configure/game/game_clientid.pyc ./source/tygame-sdk/configure/game/global_avatar.py:photoDownloadHttpDomain = 'http://10.0.3.27:8089' 匹配到二进制文件 ./source/tygame-sdk/configure/game/global_avatar.pyc ./source/tygame-sdk/configure/server/online.json: "http.sdk" : "http://10.0.3.27", ./source/tygame-sdk/configure/server/online.json: "internet" : "10.0.3.27",