2012-10-08 51 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