我正在尝试使用 bash 命令重命名一些文件,但我不知道如何将算术表达式/数学运算添加到正则表达式中。
输入:
a000.png
a001.png
...
输出:
a010.png
a011.png
...
我正在尝试将 10 添加到名称中。
我尝试过的一些事情:
rename -n -e 's/a(\d+).png/a$1 + 10.png/' *
rename -n -e 's/a(\d+).png/a{$1 + 10}.png/' *
rename -n -e 's/a(\d+).png/a$($1 + 10).png/' *
有没有简单的方法可以做到这一点?
最佳答案
这应该可以解决问题。如果您不想要前导零,您可以删除 sprintf
以及 "%03d"
格式字符串。此外,如果要重命名的文件将始终以a
开头,您还可以替换前导正则表达式[a-zA-Z]*
使用文字字符 a
。最后,虽然 *
文件说明符可能就足够了,但我还是建议添加一个扩展名作为额外的安全预防措施(例如 *.png
)。
As always, try it out first using the
-n
flag to verify the rename is correct.
rename -v 's/([a-zA-Z]*)([0-9]*)/$1.sprintf("%03d",$2+10)/e' *
关于bash - 使用数学运算重命名文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47783117/