2012-10-08 84 views
-2

我有一些被命名的文件如下:加入10重命名文件 - Unix的

abc21pqr.txt 
abc22pqr.txt 
abc23pqr.txt 

,並以此類推,直到

abc1000pqr.txt 

我要採取「ABC」和「之間的數焊接工藝評定」,加10至該號碼,重命名文件:

所以我輸出的文件名應該是:

abc31pqr.txt 
abc32pqr.txt 
abc33pqr.txt 

,並以此類推,直到

abc1010pqr.txt 

我怎樣才能做到這一點使用Unix的一個班輪?

感謝

+0

會發生什麼,如果沒有'abc23pqr.txt'和'重命名之前是否存在abc33pqr.txt? – thkala

+0

你還應該提及*你正在使用哪個* shell - 沒有這樣的東西作爲* Unix * onliner ... – thkala

+1

在這裏檢查:http://theunixshell.blogspot.com/2013/01/bulk-renaming-of -files功能於unix.html – Vijay

回答

2

對於GNU Bash,假設之前和固定號碼後,所有文件的字符串是在當前目錄:

find -maxdepth 1 -type f -name 'abc[0-9]*pqr.txt' | 
    sed 's|^./abc||; s|pqr\.txt$||' | 
    sort -nr | 
    while read src; do 
     mv abc${src}pqr.txt abc$((src+10))pqr.txt 
    done