在目录中,我有以下文件
0069.png 0074.png 0079.jpg 0084.png
以及更多类似的命名文件。
如何通过在bash中从名称中减去一个数字来更改名称?
例如,在减去17之后,上面的文件将是
0052.png 0057.png 0062.jpg 0067.png
感谢。
答案 0 :(得分:1)
您可以在要重命名的jpg和png文件所在的目录中使用以下rename命令。
$ rename 's/^0*\K(\d+)/$1-17/e' *.* -vn
0069.png renamed as 0052.png
来自man rename
,
-v, --verbose
Verbose: print names of files successfully renamed.
-n, --no-act
No Action: show what files would have been renamed.
从上面的命令中删除-vn
以进行重命名。 e
修饰符允许在替换部分中计算表达式。
添加-f
选项以强制重命名。
rename 's/^0*\K(\d+)/$1-17/e' *.* -f
示例:强>
$ ls
1.jpg 2.png
$ rename 's/^0*\K(\d+)/$1+1/e' *.* -fvn
1.jpg renamed as 2.jpg
2.png renamed as 3.png