鐵之狂傲
標題:
利用 仿unix命令 sed 一次替換文字中的 "某些相似性的字串"
[列印本頁]
作者:
wang_966
時間:
12-9-6 20:19
標題:
利用 仿unix命令 sed 一次替換文字中的 "某些相似性的字串"
本文章最後由 wang_966 於 12-9-6 20:51 編輯
如何利用 仿unix命令 sed 一次替換文字中的 "某些相似性的字串"
* 在 unix/linux 大多數複雜的批次處理都可以不用設計程式來達成
* 如果在 unux/linux 可以用 sed 命令來編輯大量的文字檔
* 如果在 windows 下可下載 "仿unix命令", 其中也有 sed.exe 可用
windows下安裝 UnxUtils -- 仿 unix/linux 命令
.......................................................................................
* 範例1:假設有一個檔案 c:\input.txt 內容如下:
<a href=
http://hgdyv.bay.livefilestore.com/mdfkjfbvfjgnkkk485tu89-gnfsji83-gjde_/1.jpg
>
<a href="http://hgdyv.bay.livefilestore.com/123gnkkk485tu89-gnfsji83-gjde_/52.jpG">
<a href="http://www.abcdef.com/d3nj6-_R/903.JPg">
要將存放的網址全部替換, 最後產生 c:\output.txt 內容如下:
<a href="http://www.name.com.tw/1.JPG">
<a href="http://www.name.com.tw/52.JPG">
<a href="http://www.name.com.tw/903.JPG">
則利用以下命令便可編輯出所要的結果
:
sed.exe -e "
s/
http.*\/
\([0-9][0-9]*\)
\
.
[jJ][pP][gG]
/
http:\/\/www.name.com.tw\/
\1
.JPG
/
" < c:\input.txt > c:\output.txt
執行完便產生 c:\output.txt 內容為:
<a href=
http://www.name.com.tw/1.JPG
>
<a href="http://www.name.com.tw/52.JPG">
<a href="http://www.name.com.tw/903.JPG">
* 註解:
sed.exe -e "編輯指令" < 輸入檔 > 輸出檔
編輯指令中有 "
s/
找字串一
/
改成字串二
/
" , 其中 s 表示 "替代"
找字串一 http.*\/\([0-9][0-9]*\)\.[jJ][pP][gG] , 其中
.
表示 "
任意字
"
,
*
表示 "
前面的字出現任意次數
"
, 因此
.* 表示 "
任意字出現任意次數
"
\
表示
將
其後的字的意義 "取消 或 另做不同的解釋"
,
\
/ 表示 / ,
\([0-9][0-9]*\)
表示將
\( \)
的內容存到字串二的
\1
中 ,
[0-9] 表示一個字為範圍介於0-9之間的數字,
[0-9]* 表示數字重複出現任意次(含零次) ,
\
.
表示一個字 '
.
'
[jJ] 表示一個字內容為 j 或 J
.......................................................................................
歡迎光臨 鐵之狂傲 (https://www.gamez.com.tw/)