批量替换

本文介绍了一种使用批处理脚本和shell脚本的方法来批量替换配置文件中的IP地址,这种方法适用于Windows和Linux环境。通过查找并替换指定的IP地址为新的域名地址,能够有效地进行环境迁移和配置更新。

replace.bat

@echo off 
echo 开始替换! 
setlocal enabledelayedexpansion 
set TMPFILE2=%random%.reg 
set TMPFILE3=%random%.reg 
set TMPFILE4=%random%.reg 
if exist %TMPFILE2% ( del /f/q %TMPFILE2% ) 
if exist %TMPFILE3% ( del /f/q %TMPFILE3% ) 
if exist %TMPFILE4% ( del /f/q %TMPFILE4% ) 
reg export HKEY_CURRENT_USERSoftwarecvsntcvspass %TMPFILE2% 
if %ERRORLEVEL% EQU 0 ( 
type %TMPFILE2% > %TMPFILE3% 
for /f "tokens=*" %%m in ( 'findstr "172.20.23.159 172.20.16.8 172.16.40.2 172.16.2.130 ***.10.67.172 ***.10.67.171 ***.239.1***.75 ***.239.1***.74" %TMPFILE3%' ) do ( 
if "%%m"=="" else ( 
for /f "tokens=*" %%l in ( %TMPFILE3% ) do ( 
set tmp2=%%l 
set "tmp2=!tmp2:172.20.23.159=scm1.***.cn!" 
set "tmp2=!tmp2:172.20.16.8=scm2.***.cn!" 
set "tmp2=!tmp2:172.16.40.2=scm3.***.cn!" 
set "tmp2=!tmp2:172.16.2.130=scm4.***.cn!" 
set "tmp2=!tmp2:***.10.67.172=scm1.***.cn!" 
set "tmp2=!tmp2:***.10.67.171=scm2.***.cn!" 
set "tmp2=!tmp2:***.239.1***.75=scm3.***.cn!" 
set "tmp2=!tmp2:***.239.1***.74=scm4.***.cn!" 
echo !tmp2!>>%TMPFILE4% 
) 
reg delete HKEY_CURRENT_USERSoftwarecvsntcvspass /va /f 
reg import %TMPFILE4% 
del /f/q %TMPFILE4% 
) 
) 
del /f/q %TMPFILE3% 
del /f/q %TMPFILE2% 
) 
set execdir=%~dp0 
cd /d %execdir% 
set TMPFILE=%random%.tmp 
if exist %TMPFILE% ( del /f/q %TMPFILE% ) 
for /r . %%i in ( Root ) do if exist "%%i" ( 
for /f "tokens=*" %%j in ( 'findstr "172.20.23.159 172.20.16.8 172.16.40.2 172.16.2.130 ***.10.67.172 ***.10.67.171 ***.239.1***.75 ***.239.1***.74" "%%i"' ) do ( 
if "%%j"=="" else ( 
for /f "usebackq tokens=*" %%k in ( "%%i" ) do ( 
echo "%%i" 
set tmp=%%k 
set "tmp=!tmp:172.20.23.159=scm1.***.cn!" 
set "tmp=!tmp:172.20.16.8=scm2.***.cn!" 
set "tmp=!tmp:172.16.40.2=scm3.***.cn!" 
set "tmp=!tmp:172.16.2.130=scm4.***.cn!" 
set "tmp=!tmp:***.10.67.172=scm1.***.cn!" 
set "tmp=!tmp:***.10.67.171=scm2.***.cn!" 
set "tmp=!tmp:***.239.1***.75=scm3.***.cn!" 
set "tmp=!tmp:***.239.1***.74=scm4.***.cn!" 
echo !tmp!>>%TMPFILE% 
move /y "%%i" "%%i".bak 
move /y %TMPFILE% "%%i" 
) 
) 
) 
) 
endlocal 
echo 替换完毕! 
pause

replace.sh

#!/bin/sh 
echo begin replace! 
if [ -f $HOME/.cvspass ] 
then 
if grep -E "172.20.23.159|172.20.16.8|172.16.40.2|172.16.2.130|***.10.67.172|***.10.67.171|***.239.1***.75|***.239.1***.74" $HOME/.cvspass 
then 
sed -i.bak "s/172.20.23.159/scm1.***.cn/;s/172.20.16.8/scm2.***.cn/;s/172.16.40.2/scm3.***.cn/;s/172.16.2.130/scm4.***.cn/;s/***.10.67.172/scm1.***.cn/;s/***.10.67.171/scm2.***.cn/;s/***.239.1***.75/scm3.***.cn/;s/***.239.1***.74/scm4.***.cn/" $HOME/.cvspass 
fi 
fi 
SAVEIFS=$IFS 
#IFS=$(echo -en "nb") 
IFS=" 
" 
exedir=`dirname $0` 
cd $exedir 
files=`find . -name Root -follow` 
for f in $files 
do 
g=`cat "$f"` 
h=`echo ${g##*@}` 
i=`echo ${h%%:*}` 
case $i in 
172.20.23.159) 
echo "$f" 
sed -i.bak "s/172.20.23.159/scm1.***.cn/" "$f" 
;; 
172.20.16.8) 
echo "$f" 
sed -i.bak "s/172.20.16.8/scm2.***.cn/" "$f" 
;; 
172.16.40.2) 
echo "$f" 
sed -i.bak "s/172.16.40.2/scm3.***.cn/" "$f" 
;; 
172.16.2.130) 
echo "$f" 
sed -i.bak "s/172.16.2.130/scm4.***.cn/" "$f" 
;; 
***.10.67.172) 
echo "$f" 
sed -i.bak "s/***.10.67.172/scm1.***.cn/" "$f" 
;; 
***.10.67.171) 
echo "$f" 
sed -i.bak "s/***.10.67.171/scm2.***.cn/" "$f" 
;; 
***.239.1***.75) 
echo "$f" 
sed -i.bak "s/***.239.1***.75/scm3.***.cn/" "$f" 
;; 
***.239.1***.74) 
echo "$f" 
sed -i.bak "s/***.239.1***.74/scm4.***.cn/" "$f" 
;; 
esac 
done 
IFS=$SAVEIFS 
echo replace finished!

转载于:https://my.oschina.net/tadcat/blog/149837

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值