0
从所有文件的名称一些在目录中,我有以下文件减去一个目录
0069.png 0074.png 0079.jpg 0084.png
多的类似命名的文件。
如何通过从bash中减去一个数字来改变他们的名字?
例如,减去17之后,文件上面会
0052.png 0057.png 0062.jpg 0067.png
感谢。
从所有文件的名称一些在目录中,我有以下文件减去一个目录
0069.png 0074.png 0079.jpg 0084.png
多的类似命名的文件。
如何通过从bash中减去一个数字来改变他们的名字?
例如,减去17之后,文件上面会
0052.png 0057.png 0062.jpg 0067.png
感谢。
您可以在要重命名的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
你在运行'rename'上。在'util-linux 2.23.2'重命名中没有'-n'选项? – 2014-11-06 01:18:55
@ DavidC.Rankin n表示不行为。它只是显示输出的结果。 – 2014-11-06 01:21:31
来自util-linux的'rename'只支持LInux上的'-v verbose','-s symlink'(帮助和版本也可用)。你在Linux上吗? – 2014-11-06 01:24:21