通过添加10 - Unix重命名文件

时间:2012-10-08 20:45:48

标签: file unix rename

我有一些文件名如下:

abc21pqr.txt
abc22pqr.txt
abc23pqr.txt

依此类推

abc1000pqr.txt

我想取“abc”和“pqr”之间的数字,在该数字上加10并重命名文件:

所以我的输出文件名应该是:

abc31pqr.txt
abc32pqr.txt
abc33pqr.txt

依此类推

abc1010pqr.txt

如何使用Unix单线程执行此操作?

由于

1 个答案:

答案 0 :(得分: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