Replace Pioneer(替換先鋒),是Mind Pioneer出品的一款共享軟體。是一款與眾不同的專業文本批量替換和處理軟體。
基本介紹
- 中文名:替換先鋒
- 外文名:Replace Pioneer
- 出品:Mind Pioneer
- 類型:一款共享軟體
軟體介紹,不足之處,使用技巧,
軟體介紹
雖然Replace Pioneer主要是一個文本替換工具,但是它衍生出來的功能幾乎覆蓋了純文本處理的任何一個角落,而且在任一領域,它都有獨到之處:
* 作為批量文本替換軟體
--支持最基本的多行文本,多檔案,正則表達式替換
--可在指定特徵和序號的段/行的範圍內,替換指定特徵和序號的字/詞/行/段;
--可自定義段/詞的分隔設定;
--對搜尋到的文字可以進行任意切割重組,加序號,或運用內置的或自定義的函式;
--對搜尋到的的文字可以進行添加自定義過濾條件或運行自定義代碼;
--支持在檔案首尾加文字;
--支持把多步替換記錄為腳本並重用;
--支持由以上功能衍生出來的文本排序/提取/計算/統計/格式轉換/翻譯/HTML和TXT互轉/進制轉換器/IP轉換成國家等等功能。
* 作為批量文本分割合併工具
--支持按指定可變行數/字數/自定義段分割;
--支持按自定義列橫向分割檔案;
--支持按檔案首行等靈活規則命名分割檔案;
--支持按列橫向合併檔案;
--支持分割和合併的同時進行文本替換和處理。
* 作為批量文本編碼轉換工具
--支持獨特的編碼檢測功能可以有效地幫助用戶確定檔案的編碼方式。
* 作為批量檔案重命名工具
--支持按檔案名稱,時間,目錄等進行任意排序;
--支持檔案名稱任意切割和重組;
--支持檔案名稱加長度可控的序號;
--支持對檔案名稱進行正則替換,甚至運行函式;
* 作為批量下載工具
--支持對批量網頁進行下載地址解析和名字過濾;
--支持第二級可過濾網頁連結解析
--支持保存檔案時直接進行靈活的重命名;
--檔案可以下載保存為html,text(文本),binary(二進制),甚至Links(連結)。
在不犧牲強大功能的前提下,它努力做到了簡單,靈活和專業的高度統一。你甚至可以把以上所有功能同時設定,處理文本一氣呵成。
不足之處
1. 為保持界面的高度統一和簡潔,很多衍生出來的高級功能對初學者不是很直觀易懂,為彌補這一不足,系統提供了100個以上的支持不同功能的模板,而且在主站上有數百個不同的例子供參考。正如初學陀螺的人可能很難很好地駕馭它,等到能靈活控制後就會為它的簡單和完美而陶醉。
2. 高度靈活和面面俱到的功能不可避免地帶來了速度上的延遲,就像航空母艦不可能以F1賽車的速度啟航。新提供的批量Fast Replace功能彌補了這一不足。
3. 目前只有英文版,但由於對多種編碼的支持,處理中文文檔完全沒有問題。然而很多人可能會對英文版望而卻步,其實很簡單,這其實是一個熟悉計算機英語基本辭彙的很好的機會。
使用技巧
* 批量替換
如何定義多個替換規則,對多個文本進行批量替換,比如,把很多檔案里的a1,a2,a3,...分別替換成b1,b2,b3,...的詳細步驟:
1. 打開Tools->Batch Runner選單
2. 把檔案從Windows 檔案管理器拖拽到Batch Runner選單中
3. 點擊Fast Replace,打開Fast Replace視窗
4. 點擊Add鍵,在Search輸入a1,在Replace輸入b1,點擊OK
5. 重複第4步,直到所有的替換規則a2,b2;a3,b3...都加入
7. 點擊start即可。
注意:
1. 要提前備份
2. 如果替換的文字有特殊字元比如$.\等等,要把Regular Exp選項去掉
* 批量轉換檔案編碼方式
以ansi(gbk)->UTF8為例來說明。
用Replace Pioneer批量把ansi(gbk)格式的文本檔案轉換為UTF8的方法如下:
第一步:選檔案
1.打開Tools->Batch Runner選單
2.把待處理檔案從Windows拖拽到Batch Runner視窗中
第二步:變換編碼
1.點擊Change Encode按鈕
2.點擊input encoding,設定成CN->gbk
3.點擊output encoding,設定成utf-8
4.點擊start,完成
如何用Replace Pioneer檢測出一個檔案是什麼編碼:
1. 選擇Tools->Encoding Detection
2. 在"File to Check"里輸入檔案名稱,點擊Start
3. 檔案就會被用70多種編碼方式顯示出來
哪一個顯示正確就可能是這種編碼,當然,某個檔案可能在多種編碼方式下都顯示正確。
* 自動分割文本檔案
Replace Pioneer可以按章/節/回,等等任意自定義的文字進行分割。
如果需要,也可以按行數和字數進行分割。
按章/節/回分割的具體步驟:
1. ctrl-o打開待分割的txt檔案
2. 選擇File->Save As->Split by Paragraph選單:
* 輸出格式設定
在Split Naming輸入${BASE}.###.${EXT}
* 怎樣分段
把Para Start選項選成Other,並在右邊輸入"^\s*第.*?[章節回]"(不帶雙引號)
把Para End選為None,表示只按照para start的內容分段。
* 寫入檔案
點擊Next,並輸入結果檔案名稱比如A.TXT,那么結果檔案就被寫成A.001.TXT, A.002.TXT, ...
更多用法:
1. 要想加入其他類型比如"篇",只要把"篇"加入上面Para Start的方括弧,變成"^\s*第.*?[章節回篇]"(不帶雙引號)
2. 如果每章的格式是1.xxx 2.xxx ...,只要把Para Start變成"^\s*\d+\."(不帶雙引號)
3. 如果每章的格式是 一、xxx 二、xxx ...,只要把Para Start變成"^\s*[一二三四五六七八九零〇百千]+、"(不帶雙引號)
4. 要想按行數/字數分段,就用File->Save As->Split by bytes/lines選單。
* 檔案重命名
用Replace Pioneer實現66 種批量檔案重命名的方法
詳細步驟:
1. 安裝並打開 "Replace Pioneer" ,打開 "Tools->Batch Runner" 選單。
2. 把所有Window檔案拖拽到"Batch Runner"視窗中。
3. 把"Set output filename"選項改為用戶需要的重命名公式。
4. 點擊File Rename按鈕完成。
編號 | 原檔案名稱實例 | 新檔案名稱實例 | 公式 | |
1 | change extension | file.txt | file.new | ${BASE}.new |
2 | insert before extension | file.txt | file.new.txt | ${BASE}.new.${EXT} |
3 | add new extension | file | file.new | ${FILENAME}.new |
檔案名稱重新組織 | 原檔案名稱實例 | 新檔案名稱實例 | 公式 | |
4 | take first 3 chars | abc1234.txt | abc.txt | ${BASE}{1,3}.${EXT} |
5 | take last 3 chars | 1234abc.txt | abc.txt | ${BASE}{-3,-1}.${EXT} |
6 | take 3 ~ 6 chars | ab1234c.txt | 1234.txt | ${BASE}{3,6}.${EXT} |
7 | take 1 ~ -3(3rd from end) chars | abcde12.txt | abcde.txt | ${BASE}{1,-3}.${EXT} |
8 | take 3 ~ -3(3rd from end) chars | ab1234cd.txt | 1234.txt | ${BASE}{3,-3}.${EXT} |
9 | first 3 and from the 8th char on | abc1234def.txt | abcdef.txt | ${BASE}{1,3}${BASE}{8,-1}.${EXT} |
10 | exchange 1,2 and 3,4 chars | abcd.txt | cdab.txt | ${BASE}{3,4}_${BASE}{1,2}.${EXT} |
檔案名稱加序號 | 原檔案名稱實例 | 新檔案名稱實例 | 公式 | |
11 | sequence number of 1,2,3 ... | any.txt | N.txt(N=1,2, ...) | #.${EXT} |
12 | sequence number of 0001,0002,0003 ... | any.txt | N.txt(N=0001,0002,...) | ####.${EXT} |
13 | sequence number of 3,4,5,... | any.txt | N.txt(N=3,4, ...) | #{3}.${EXT} |
14 | sequence number of 5,7,9,...(start=5,step=2) | any.txt | N.txt(N=5,7,9,...) | #{5,2}.${EXT} |
15 | sequence number of 100,99,98,...(start=100,step=-1) | any.txt | N.txt(N=100,99,98,...) | ###{100,-1}.${EXT} |
16 | add sequence number 001,002,... before filename | file.txt | N_file.txt(N=001,002,...) | ###_${FILENAME} |
17 | append sequence number 001,002,... after filename | file.txt | file_N.txt(N=001,002,...) | ${BASE}_###.${EXT} |
18 | change the extension name to sequence 001,002,... | file.txt | file.N(N=001,002,...) | ${BASE}.### |
19 | append sequence aaa,aab,...zzz to filename | file.txt | file.txt.X(X=aaa,aab,aac,...zzz) | ${FILENAME}.@@@ |
20 | create sequence number of 01_01, 01_02, ... 01_10, 02_01, 02_02,... 02_10, 03_01,03_02,... | any.txt | M_N.txt(M:01,02,03,...,N:01~10) | #<calc(($&-1)/10+1,"02")>_#<calc(($&-1)%10+1,"02")>${EXT} |
字元串替換和正則表達式 | 原檔案名稱實例 | 新檔案名稱實例 | 公式 | |
21 | replace 'old' with 'new' in name | old123.txt | new123.txt | ${FILENAME}{replace,'old','new'} |
22 | remove any digit in filename | abc123def456.txt | abcdef.txt | ${BASE}{replace,'\d+',''}.${EXT} |
23 | remove digits that as surfix | abc123def456.txt | abc123def.txt | ${BASE}{replace,'\d+$',''}.${EXT} |
24 | remove digits that as prefix | 123abc456.txt | abc456.txt | ${BASE}{replace,'^\d+',''}.${EXT} |
25 | add parenthesis for any number | abc123def456.txt | abc(123)def(456).txt | ${BASE}{replace,'(\d+)','(\1)'}.${EXT} |
26 | remove all parenthesis in filename | abc(123).txt | abc123.txt | ${BASE}{replace,'\((.*?)\)','\1'}.${EXT} |
27 | change all parenthesis to bracket | abc(123).txt | abc[123].txt | ${BASE}{replace,'\((.*?)\)','[\1]'}.${EXT} |
28 | exchange parts before and after dash | abc-def.txt | def-abc.txt | ${BASE}{replace,'(.*?)-(.*)','\2-\1'}.${EXT} |
29 | change dash to parenthesis | abc-def.txt | abc(def).txt | ${BASE}{replace,'(.*?)-(.*)','\1(\2)'}.${EXT} |
30 | change all spaces to underscore | abc def.txt | abc_def.txt | ${BASE}{replace,'\s+','_'}.${EXT} |
根據檔案內容來替換檔案名稱 | 原檔案名稱實例 | 新檔案名稱實例 | 公式 | |
31 | change filename to the first word of file content | any.txt | firstword | ${FILENAME}{file_content,'(\S+)'} |
32 | change filename to the first 60 chars of 1st line of file content | any.txt | firstline(60 letter maximum) | ${FIRSTLINE}{1,60} |
33 | change filename to the first 60 chars of 2nd line of file content | any.txt | secondline(60 letter maximum) | ${FILENAME}{file_line,2}{1,60} |
34 | change filename to the title of html file | any.html | htmltitle.html | ${FILENAME}{html_title}{1,20}.html |
35 | change filename to the content between <strong> and </strong> | any.html | strongcontent.html | ###_${FILENAME}{file_content,'<strong>(.*?)<\/strong>',undef,10000}.${EXT} |
36 | change filename to the content followed by phase_name inside file | any.html | phase_name_content.html | ${FILENAME}{file_content,'phase_name\s*"(.*?)"'}.${EXT} |
根據檔案時間替換檔案名稱 | 原檔案名稱實例 | 新檔案名稱實例 | 公式 | |
37 | change filename to the date time of file | any.jpg | 2010-07-01_18:19:20.jpg | ${FILENAME}{file_time, '%Y-%m-%d_%H:%M:%S'}.${EXT} |
38 | change filename to the date of file plus sequence number | any.jpg | 2010-07-01(N).jpg(N=01,02,03,...) | ${FILENAME}{file_time, '%Y-%m-%d'}(##).${EXT} |
39 | append file date to original filename | abc.jpg | abc_2010-07-01.jpg | ${BASE}_${FILENAME}{file_time, '%Y-%m-%d'}.${EXT} |
根據mp3檔案的內容重命名 | 原檔案名稱實例 | 新檔案名稱實例 | 公式 | |
40 | rename mp3 files to artist-album-track format | abc.mp3 | artist-album-track.mp3 | ${FILENAME}{mp3_info,'%R-%A-%T'}.mp3 |
41 | rename mp3 files to artist-album format with sequence number | abc.mp3 | artist-album_N.mp3(N=001,002,...) | ${FILENAME}{mp3_info,'%R-%A'}_###.mp3 |
42 | append artist and album after original filename | abc.mp3 | abc_arrist-album.mp3 | ${BASE}_${FILENAME}{mp3_info,'%R-%A'}.mp3 |
根據圖片檔案的內容重命名 | 原檔案名稱實例 | 新檔案名稱實例 | 公式 | |
43 | rename jpg files by adding sequence and picture width, height | abc.jpg | N_W_H.jpg(N=001,002,... W=width, H=height) | ###_${FILENAME}<img_info($&,'%W_%H')>.${EXT} |
44 | rename gif files by appending width and height | abc.gif | abc_WxH.gif(W=width,H=height) | ${BASE}_${FILENAME}<img_info($&,'%Wx%H')>.${EXT} |
根據索引檔案,對照檔案來重命名 | 原檔案名稱實例 | 新檔案名稱實例 | 公式 | |
45 | change the Nth filename to the Nth line of indexfile | file.jpg(sequence number=N) | X_(lineN_of_indexfile).jpg(N=file sequence,X=001,002,...) | ###_#<file_line('indexfile',$match)>.${EXT} |
46 | change the filename by looking up the mapping list in mapfile(1) | old.txt | new.txt(old<table>new is defined in mapfile) | ${BASE}<file_content('mapfile',"(?:\n|^)$match\t([^\n]*)")>.${EXT} |
47 | change the filename by looking up the mapping list in mapfile(2) | old.txt | new.txt(old,new is defined in mapfile) | ${BASE}<file_content('mapfile',"(?:\n|^)$match,([^\n]*)")>.${EXT} |
根據目錄名來重命名 | 原檔案名稱實例 | 新檔案名稱實例 | 公式 | |
48 | add the pathname in the front of filename | c:\test\abc\01.jpg | abc_01.jpg | |
49 | add the pathname and related sequence no in the front of filename | c:\a\x.jpg, y.jpg c:\b\x.jpg, y.jpg | a_001.jpg, a_002.jpg, b_001.jpg, b_002.jpg | |
50 | create subfolder and move file in it | c:\test\a.txt | c:\test\old\a.txt | #<scalar(system('mkdir old'),'old')>\${FILENAME} |
按照大小寫重命名 | 原檔案名稱實例 | 新檔案名稱實例 | 公式 | |
51 | change whole filename to lower case | FILE.TXT | file.txt | ${FILENAME}{lc} |
52 | change whole filename to upper case | file.txt | FILE.TXT | ${FILENAME}{uc} |
53 | change the first letter to upper case | file.txt | File.txt | ${FILENAME}{ucfirst} |
54 | change the first letter of each word to upper case | test file.txt | Test File.txt | ${BASE}{replace,'\b\w','\U$&'}.${EXT} |
對數字作運算,改變數字格式 | 原檔案名稱實例 | 新檔案名稱實例 | 公式 | |
55 | change all number in filename to 4 digits format | file123.txt | file0123.txt | ${BASE}<replace($match,'(\d+)','${\calc($1,"04d")}')>.${EXT} |
56 | add all number in filename by 3, use 4 digits format | file123.txt | file0126.txt | ${BASE}<replace($match,'(\d+)','${\calc($1+3,"04d")}')>.${EXT} |
57 | multiply all number in filename by 2, use 4 digits format | file123.txt | file0246.txt | ${BASE}<replace($match,'(\d+)','${\calc($1*2,"04d")}')>.${EXT} |
58 | filename is pure number, add the number by the first number in file content | 123.txt | 133.txt(assume first number in file content is 10) | ${FILENAME}<add(basename($&),file_content($&,'(\d+)'))>.${EXT} |
59 | add leading zeros to make the filename has length of 10 | 12W.txt | 00012W.txt(total length is 10) | ${FILENAME}{calc,'010s'} |
用隨機字母和單詞重命名 | 原檔案名稱實例 | 新檔案名稱實例 | 公式 | |
60 | append to filename random letters and digit with length of 5 | abc.txt | abc_xxxxx.txt(xxxxx is random letters/digits) | ${BASE}_#<rand_str(5,'a'..'z',0..9)>.${EXT} |
61 | rename file to random word from candidate words | abc.txt | N_C.txt(N=001,002,..., C=random of 'RED', 'PURPLE',...) | ###_#<rand_str(1,'RED','PURPLE','GREEN','BLUE','ORANGE')>.${EXT} |
字元映射法重命名 | 原檔案名稱實例 | 新檔案名稱實例 | 公式 | |
62 | change filename by mapping 0-9 to A-J correspondingly | 0123.jpg | ABCD.jpg | ${BASE}<scalar($&=~tr/0-9/A-J/,$&)>.${EXT} |
63 | change filename by mapping 0-4 to 5-9, and 5-9 to 0-4 | 012348888.jpg | 567893333.jpg | ${BASE}<scalar($&=~tr/0-4,5-9/5-9,0-4/,$&)>.${EXT} |
64 | change filename by reverse upper and lower cases | TELLme.txt | tellME.txt | ${BASE}<scalar($&=~tr/A-Za-z/a-zA-Z/,$&)>.${EXT} |
趣味重命名 | 原檔案名稱實例 | 新檔案名稱實例 | 公式 | |
65 | reverse letters of filename | just for fun.txt | nuf rof tsuj.txt | ${BASE}{chars_r,1,-1}.${EXT} |
66 | double each letter in filename | just for fun.txt | jjuusstt ffoorr ffuunn.txt | ${BASE}{replace,'(.)','\1\1'}.${EXT} |