http://bbs.chinaunix.net/thread-554405-1-1.html
承蒙CU各位大俠關照,現將自己搜集整理的檔案批量改名方法總結如下,有原創也有引用,引用恕不一一註明。學習研究中經常碰到批量檔案改名問題,所以下決心一勞永逸地解決了這個問題,不正之處請方家指正,歡迎評點、補充,謝謝!
A 加尾碼
1.問題:同以目錄下有海量以日期命名的檔案,其中有的有尾碼,有的以點結尾,如20020101.,20020102.,……,20020101.td,20020102.td……
要求: 把所有以點結尾的加上尾碼.ts
我的方法:
#!/bin/bash
for files in `ls *.`
do
mv $files `echo "$filests" `
done
2. 同上
mv $files ${files}ts
3. 同上
mv $files `$files.ts|sed 's/\.//' `
4. file =>file.txt
mv $files $files.txt
5. *.04 => *04.txt
mv $files $(echo ${files}.txt|sed 's/\.//1')
或者
mv $files `echo ${files}.txt|sed 's/\.//1' `
B 改尾碼(.old => .new)
1. rename
rename .old .new *
2.
mv $files ${file%.old}.new
3.
mv $files `echo $files|tr .old .new`
4.
mv $files `echo $files|sed 's/\.old/\.new/' `
C 去尾碼 (*.dat => *)
1. mv $files `echo $files |sed 's/\.dat//' `
2. mv $files `echo $files|tr .dat (4空格)`
D 改首碼 (re* => un*)
1. mv $files un${$files#re}
2. mv $files `echo $files | tr re un`