1. 程式人生 > >檔案批量改名和批量替換檔案內容

檔案批量改名和批量替換檔案內容

周海漢 /文

09.12.3

文字操作中經常有整體查詢和替換以及改名的操作,在linux下還是比較方便的,windows下則需要採用特殊工具。下面是linux下一些簡單方法,在ubuntu9.10中除錯通過。

1.批量改名採用命令rename

rename 語法:

rename [ -v ] [ -n ] [ -f ] perlexpr [ files ]

-v表示顯示詳細資訊,-n表示不實際執行替換,只是看哪些檔案會受影響。 -f 表示強制,不管是否有重名。

perlexpr是perl語法的表示式, files則是匹配項。因此,該命令執行結果與perlexpr有關,不一定就是改檔名。

例項: 將所有檔名*.html 改為對應的.htm

rename 's//.html$//.htm$/' *.html

去bak字尾

rename 's//.bak$//' *.bak

將檔名大寫改為小寫

rename 'y/A-Z/a-z/' *

但rename不能遞迴修改。

2.遞迴改名,用find+rename

將檔名的abc改為xyz

find . -name "abc*" -exec rename 's/abc/xyz/' {} /;

該命令可以將當前目錄下所有子目錄的檔案都改名。

3.內容替換,用find+sed

將所有ablo 替換為ablozhou

find . -type f -exec sed -i -e "s/ablo/ablozhou/g" {} /;

sed 命令 -i 表示 --in-place,檔案原地替換。-e 後跟替換表示式。