作者tools241 (Mike)
看板EZsoft
標題[推薦]windows下安裝 UnxUtils-仿unix/linux命令
時間Tue Feb 25 06:30:39 2014
軟體名稱: UnxUtils
軟體資訊: Windows
軟體功能: 仿 unix/linux 命令
軟體特色: 在windows的 "命令提示字元" 模式之下使用 "仿 unix/linux 命令"
下載連結: http://sourceforge.net/projects/unxutils/ 推薦原因: 在Win環境可充分利用到 "linux的字串處理能力" .
誰適合用: 1.常在Win環境設計 "批次檔" 而又熟悉linux者有更多命令可供選擇. 2.有大量文字檔想一次替換文字中的 "某些相似性的字串".
使用感想: * 範例1:將 小說.txt 分割成3等份左右: REM 將 小說.txt 分割成3等份左右, split3.bat 內容如下 : REM 利用 仿unix命令 : REM 1.計算行數用法 wc.exe --help REM 2.改字串用法 sed.exe --help REM 3.計算用法 expr.exe --help REM 4.分割用法 split.exe --help REM 計算 expr 行數 / 3 的值, 存到 tmp.txt echo @echo off > tmp.bat wc -l 小說.txt | sed -e "s: *\([0-9][0-9]*\).*:expr \1 / 3:" >> tmp.bat call tmp.bat > tmp.txt REM 些生 split.exe -行數 input.txt output_ sed -e "s:\(.*\):split.exe -\1 小說.txt output_:" tmp.bat call tmp.bat move output_aa 小說_1.txt move output_ab 小說_2.txt move output_ac 小說_3.txt del tmp.txt del tmp.bat * 註解: sed.exe -e "編輯指令" 輸出檔 編輯指令中有 "s/找字串一/改成字串二/" 或 "s:找字串一:改成字串二:" , 其中 s 表示 "替代" 找字串一 http.*\/\([0-9][0-9]*\)\.[jJ][pP][gG] , 其中 . 表示 "任意字", * 表示 "前面的字出現任意次數", 因此 .* 表示 "任意字出現任意次數" \ 表示 將其後的字的意義 "取消 或 另做不同的解釋" , \/ 表示 / , \([0-9][0-9]*\) 表示將 \( \) 的內容存到字串二的 \1 中 , [0-9] 表示一個字為範圍介於0-9之間的數字, [0-9]* 表示數字重複出現任意次(含零次) , \. 表示一個字 . [jJ] 表示一個字內容為 j 或 J * 範例2:假設有一個檔案 c:\input.txt 內容如下: <a href=
http://aaa.xxx.com/mdf/1.jpg> <a href="
http://bbb.yyy.com/123g/52.jpG"> <a href="
http://www.abcdef.com/d3nj6-R/903.JPg"> 要將存放的網址全部替換, 最後產生 c:\output.txt 內容如下: <a href="
http://www.ppp.com.tw/1.JPG"> <a href="
http://www.ppp.com.tw/52.JPG"> <a href="
http://www.ppp.com.tw/903.JPG"> 則利用以下命令便可編輯出所要的結果: sed.exe -e "s/http.*\/\([0-9][0-9]*\)\.[jJ][pP][gG]/http:\/\/www.ppp.com.tw\/\1.JPG/" c:\output.txt 執行完便產生 c:\output.txt 內容為: <a href=
http://www.ppp.com.tw/1.JPG> <a href="
http://www.ppp.com.tw/52.JPG"> <a href="
http://www.ppp.com.tw/903.JPG"> * 註解: sed.exe -e "編輯指令" 輸出檔 編輯指令中有 "s/找字串一/改成字串二/" 或 "s:找字串一:改成字串二:" , 其中 s 表示 "替代" 找字串一 http.*\/\([0-9][0-9]*\)\.[jJ][pP][gG] , 其中 . 表示 "任意字", * 表示 "前面的字出現任意次數", 因此 .* 表示 "任意字出現任意次數" \ 表示 將其後的字的意義 "取消 或 另做不同的解釋" , \/ 表示 / , \([0-9][0-9]*\) 表示將 \( \) 的內容存到字串二的 \1 中 , [0-9] 表示一個字為範圍介於0-9之間的數字, [0-9]* 表示數字重複出現任意次(含零次) , \. 表示一個字 . [jJ] 表示一個字內容為 j 或 J --
※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 36.231.73.222
This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at fivefilters.org/content-only/faq.php#publishers.
留言列表