批次修改檔案內容的問題

如果您覺得您的問題不屬於 debian desktop 或是 debian server 版的範圍內,請在這裡發問。

版主: mufa

批次修改檔案內容的問題

文章小狐狸 » 週日 2月 22, 2004 10:05 pm

有一分文件是這個樣子的:
<A HREF=A\INDEX.HTML>A</A>
<A HREF=B\INDEX.HTML>B</A>
<A HREF=C\INDEX.HTML>C</A>
<A HREF=D\INDEX.HTML>D</A>
<A HREF=E\INDEX.HTML>E</A>
<A HREF=F\INDEX.HTML>F</A>
<A HREF=G\INDEX.HTML>G</A>
<A HREF=H\INDEX.HTML>H</A>
<A HREF=I\INDEX.HTML>I</A>
<A HREF=J\INDEX.HTML>J</A>
<A HREF=K\INDEX.HTML>K</A>

我想將 "\" 全部替換成 "/"
sed 's/\\/\//g' Default.HTML

sed給我ㄉ結果是對的:

結果:
<A HREF=A/INDEX.HTML>A</A>
<A HREF=B/INDEX.HTML>B</A>
<A HREF=C/INDEX.HTML>C</A>
<A HREF=D/INDEX.HTML>D</A>
<A HREF=E/INDEX.HTML>E</A>
<A HREF=F/INDEX.HTML>F</A>
<A HREF=G/INDEX.HTML>G</A>
<A HREF=H/INDEX.HTML>H</A>
<A HREF=I/INDEX.HTML>I</A>
<A HREF=J/INDEX.HTML>J</A>
<A HREF=K/INDEX.HTML>K</A>
<A HREF=L/INDEX.HTML>L</A>
<A HREF=M/INDEX.HTML>M</A>
<A HREF=N/INDEX.HTML>N</A>

可是呢!
$less Default.HTML
卻沒改變,這是怎麼回是呢?
先謝了! :mrgreen:
自由是 狐狸 的 天性 !
圖檔圖檔我的小站
圖檔圖檔
頭像
小狐狸
版主
版主
 
文章: 541
註冊時間: 週四 4月 17, 2003 10:21 pm

re:批次修改檔案內容的問題

文章d2207197 » 週日 2月 22, 2004 11:35 pm

sed 只是把處理後的東西輸出到標準輸出
原來的檔案並不會改變

所以你只要把 sed 輸出導引到檔案上就好了
頭像
d2207197
鑽研的研究生
鑽研的研究生
 
文章: 1763
註冊時間: 週二 5月 27, 2003 9:57 pm
來自: 火星

re:批次修改檔案內容的問題

文章小狐狸 » 週日 2月 22, 2004 11:47 pm

問題就在這
sed 's/\\/\//g' Default.HTML > Default.HTML

檔案變成空白!?

可是呢!
如果
sed 's/\\/\//g' Default.HTML >> Default.HTML
就可以附加進去?
這是怎麼回事壓? :mrgreen:
自由是 狐狸 的 天性 !
圖檔圖檔我的小站
圖檔圖檔
頭像
小狐狸
版主
版主
 
文章: 541
註冊時間: 週四 4月 17, 2003 10:21 pm

re:批次修改檔案內容的問題

文章huki » 週一 2月 23, 2004 12:14 am

這種我建議用perl
可以去看看朝貴老師的網頁裡頭有教
http://www.cyut.edu.tw/~ckhung/
若覺得太多了~~~
可以拿小弟不才的sh來改http://moto.debian.org.tw/viewtopic.php?t=2508
Linux給我的感覺就是自由自在,沒有壓力
希望大家都能參與linux
變成linux世界的一份子
HuKi
頭像
huki
快樂的大學生
快樂的大學生
 
文章: 783
註冊時間: 週四 11月 28, 2002 7:27 am
來自: 家:中壢/公:桃園

re:批次修改檔案內容的問題

文章d2207197 » 週一 2月 23, 2004 12:47 am

小狐狸 寫:問題就在這
sed 's/\\/\//g' Default.HTML > Default.HTML

檔案變成空白!?

可是呢!
如果
sed 's/\\/\//g' Default.HTML >> Default.HTML
就可以附加進去?
這是怎麼回事壓? :mrgreen:

因為 bash 看到> Default.HTML 時
Default.HTML 就已經先被淨空了
等 sed 處理到 Default.HTML
Default.HTML 根本就是空白檔案

sed 's/\\/\//g' Default.HTML > Default.HTML~
cat Default.HTML~
確定沒問題後
mv Default.HTML~ Default.HTML
頭像
d2207197
鑽研的研究生
鑽研的研究生
 
文章: 1763
註冊時間: 週二 5月 27, 2003 9:57 pm
來自: 火星

re:批次修改檔案內容的問題

文章小狐狸 » 週一 2月 23, 2004 10:36 am

因為 bash 看到> Default.HTML 時
Default.HTML 就已經先被淨空了
等 sed 處理到 Default.HTML
Default.HTML 根本就是空白檔案

sed 's/\\/\//g' Default.HTML > Default.HTML~
cat Default.HTML~
確定沒問題後
mv Default.HTML~ Default.HTML[/quote]

如果說

test是個目錄,裡面還有目錄,也有檔案,無論是 *.txt,*.html我都要做
代碼: 選擇全部
sed 's/\\/\//g'
的動作
該怎麼下指令壓?
:mrgreen:
自由是 狐狸 的 天性 !
圖檔圖檔我的小站
圖檔圖檔
頭像
小狐狸
版主
版主
 
文章: 541
註冊時間: 週四 4月 17, 2003 10:21 pm

re:批次修改檔案內容的問題

文章miholee » 週一 2月 23, 2004 12:52 pm

若是我會用 find 把檔案都找出來並用 for 迴圈一個一個處理。 (用 find 搭配 xargs 還不太會)。 版上的大大們應該會有更佳的解法。

for f in `find . -iname "*.txt" -o -iname "*.html"` ; do
sed ′s/\\/\//g′ $f > $f.new
mv $f.new $f
done
miholee
可愛的小學生
可愛的小學生
 
文章: 31
註冊時間: 週日 8月 31, 2003 7:26 pm


回到 debian misc

誰在線上

正在瀏覽這個版面的使用者:Google [Bot] 和 1 位訪客