Perl腳本batchReplace.pl可以用來批量替換文件中的文字/代碼。可在指定目錄中查找指定類型的文件,并遞歸檢查子目錄;在輸出文件時復(fù)制輸入文件的目錄結(jié)構(gòu)。
附件Win32應(yīng)用程序batchReplace.exe 是由Perl腳本編譯產(chǎn)生的可執(zhí)行程序,不需安裝Perl運(yùn)行環(huán)境即可執(zhí)行。
在命令行中使用
batchReplace.exe[ -i 輸入文件路徑(或包含文件的目錄)][ -o 輸出文件位置(文件或目錄)][ -c 批量輸入文件的擴(kuò)展名,以“.”開始,多個擴(kuò)展名之間以“|”隔開][ -m 匹配模式][ -I(忽略匹配內(nèi)容的字母大小寫)][ -G(全局查找要匹配的內(nèi)容)][ -e 例外的字符串,是對匹配模式的補(bǔ)充,如果在匹配結(jié)果中發(fā)現(xiàn)有這樣的字符串,做不匹配處理][ -r 替換的內(nèi)容]
上述參數(shù)沒有順序限制。當(dāng) -o 參數(shù)所涉及的文件路徑不存在時,會自動創(chuàng)建。當(dāng)輸出文件已經(jīng)存在時,文件原有的內(nèi)容將被覆蓋。(安全起見,請不要輸出到輸入文件的原始位置,以免造成不可恢復(fù)的損失。)
例如: batchReplace.exe -i d:\gaoshu1 -o d:\do\123\456 -e http://m.95time.cn/
通過配置文件 batchReplace.set 設(shè)置參數(shù)
配置文件中可包含以下設(shè)置項目(格式范例,注意大小寫):
Input=E:\fna\ 指定輸入路徑,相當(dāng)于命令行參數(shù) -i 的默認(rèn)值。 -i=E:\fna\ 同上。 Output=E:\dnaWalks\ 指定輸出路徑,相當(dāng)于命令行參數(shù) -o 的默認(rèn)值。 -o=E:\dnaWalks\ 同上。 Match=<iframe[^>]*>[\s\S]*?<\/iframe> 匹配模式,相當(dāng)于命令行參數(shù) -m 的默認(rèn)值。 -m=<iframe[^>]*>[\s\S]*?<\/iframe> 同上。 Insensitive 忽略匹配內(nèi)容的字母大小寫,相當(dāng)于命令行參數(shù) -I。 -I 同上。 Global 全局查找要匹配的內(nèi)容,相當(dāng)于命令行參數(shù) -G。 -G 同上。 Replacement=<h1>bound0</h1> 替換的內(nèi)容,相當(dāng)于命令行參數(shù) -r 的默認(rèn)值。 -r=<h1>bound0</h1> 同上。 Except=http://m.95time.cn/ 例外的字符串,如在匹配結(jié)果中發(fā)現(xiàn)有這樣的字符串,做不匹配處理,相當(dāng)于命令行參數(shù) -e 的默認(rèn)值。 -e=http://m.95time.cn/ 同上。 CheckType=.htm|.html 當(dāng)輸入?yún)?shù)設(shè)為目錄時,處理目錄中包含的具有這些擴(kuò)展名的文本文件(遞歸檢查子目錄)。相當(dāng)于命令行參數(shù) -c 的默認(rèn)值。 -c 同上。
每行放置一個項目。除內(nèi)容之間不要有多余的空格或引號。 除必要的輸入輸出外,所有的設(shè)置項目都是可選的。命令行參數(shù)會覆蓋相應(yīng)的默認(rèn)值。如果在配置文件中不包含Match或CheckType,會啟用內(nèi)置的默認(rèn)值(同上面示例中給出的值)。Replacement默認(rèn)為空字符,將匹配內(nèi)容替換為空字符,也就是將匹配內(nèi)容清除。
欲在batchReplace.set中保留歷史配置時,可在參數(shù)前放置任意非空白字符以取消其作用。例如:
- 2007/04/06 Insensitive
(此處的 Insensitive 將作為歷史配置保留,不再生效。)
- 2007/04/06 Replacement=<h1>bound0</h1>
(此處的 Replacement=<h1>bound0</h1> 將作為歷史配置保留,不再生效。)
如果在配置文件的多行中出現(xiàn)同樣的項目,以最后出現(xiàn)的設(shè)置為準(zhǔn),例如: CheckType=.htm|.html CheckType=.jsp -c=.asp|.php 將設(shè)置CheckType的值為.asp|.php,也可以利用這個特性保留歷史配置,方便調(diào)試。
這個腳本寫得比較倉促(是擠出吃晚飯的時間寫的),以后有時間我還會改進(jìn)。因此轉(zhuǎn)載請注明出處,并注意更新。
免責(zé)聲明:作者不承擔(dān)用戶因使用此工具而造成的任何意外損失。
下載:batchReplace.rar 已編譯為可執(zhí)行文件
經(jīng)典論壇討論: http://bbs.blueidea.com/thread-2734388-1-3.html
出處:藍(lán)色理想
責(zé)任編輯:moby
上一頁 下一頁 Perl源碼
|