檔案批量改名和批量替換檔案內容
阿新 • • 發佈:2019-02-15
周海漢 /文
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 後跟替換表示式。