2012-08-17 209 views
0

我要重新命名200個文件 其實每個文件被命名喜歡這樣的:Linux的shell腳本刪除數字

00001-abcd-efgg?g............. 
00002-xcvb-vbnv?b............. 
00003-cbvc-hugh?j............. 

現在我想所有這些文件重命名這樣的:

001 
002 
003 
... 

所以我需要刪除前兩位數字,並刪除第五位數字後的所有內容。 警告:我想重命名每個文件中有一個「?」。

+2

這很好...你有沒有試過這個,或者你只是想讓我們爲你做你的工作? – 2012-08-17 14:48:10

+1

看到這個:http://stackoverflow.com/questions/11990893/how-can-i-batch-move-a-prepended-year-to-the-end-of-a-file-name/11991049#11991049 – kev 2012-08-17 14:50:31

回答

1

使用rename

rename -nv 's,.*(\d{3}).*,$1,' * 

輸出:

00001-abcd-efgg?g............. renamed as 001 
00002-xcvb-vbnv?b............. renamed as 002 
00003-cbvc-hugh?j............. renamed as 003 

取出n當你滿意的輸出。

4
for f in * 
do 
    mv "$f" "${f:2:3}" 
done