2012-02-23 83 views

回答

8

如果你沒事只有通配符(未滿正則表達式),那麼你可以嘗試像

f='My123File.txt' 
mv $f ${f/File/} 

這文件類型的擴展記錄爲here

如果你真的需要正則表達式,嘗試

f='My123File.txt' 
mv $f $(echo $f | sed -e 's/File//') 
4

用戶重命名,這是一個測試:

$ touch My123File.txt 
$ rename 's/File//' My123File.txt 

man renamerename支持regexps,所以你可以這樣做 - 在某個安全的地方執行,例如/ tmp或這樣:

cd /tmp 
rm *.txt 
touch My123File.txt My456File.txt 
ls *.txt 
rename 's/([A-Za-z]+)(\d+)(\w+)/$3-999-$2-$1/' *.txt 
ls *.txt 

產生這樣的:

My123File.txt My456File.txt 
File-999-123-My.txt File-999-456-My.txt 
+0

我想你的意思是'重命名文件'My123File.txt'爲第二行。 – jjlin 2012-02-23 03:32:27

+0

重命名文件''My123File.txt的作品,但我想能夠使用正則表達式。 – SSS 2012-02-23 03:37:19

+0

@jjlin其實,我的意思是我寫的 - 親自嘗試看看它會做什麼。 @SS這是一個正則表達式,參見'man rename'。查看我的編輯例子。 – 2012-02-23 04:03:10

0

隨着MMV,它是一個命令簡單了很多。它還支持翻譯,例如降低位置參數。

mmv '*File.txt' '#1.txt' 
相關問題