在bash中通过向文件名添加数字来重命名文件

时间:2013-06-19 10:06:28

标签: bash rename file-rename

我有很多这样的文件:

13831_1.jpg
13838_1.jpg
138035_1.jpg
138037_1.jpg
138039_1.jpg

我需要为文件名的数量添加5000000的值。 结果应如下:

5013831_1.jpg
5013838_1.jpg
5138035_1.jpg
5138037_1.jpg
5138039_1.jpg

有没有办法用bash或perl来做?

3 个答案:

答案 0 :(得分:8)

执行:rename -v。如果输出:

Usage: rename [-v] [-n] [-f] perlexpr [filenames]

此检查是因为至少有两种不同的重命名工具,具有非常不同的功能。而我所拥有的解决方案需要重命名处理perlexpr。

然后你可以:

rename 's/^(\d+)/5000000+$1/e' *.jpg

答案 1 :(得分:4)

仅使用bash

执行此操作的一种方法
for file in *.jpg; do
  number=${file%_*}
  therest=${file#$number}
  mv "$file" "$((number+5000000))$therest"
done

注意:

答案 2 :(得分:-3)

$filename      = "13831_1.jpg";
$org           = explode("_".$filename);
$addnumber     = 5000000+$org[0];
$string        = implode("_",$addnumber);