Nes*_*esh 5 files batch-rename
我的.png文件夹中有大约 200 个文件,命名为 -
02.png
03.png
04.png
...
201.png
Run Code Online (Sandbox Code Playgroud)
如您所见,我没有,01.png所以我想将所有文件重命名减一,使其像-
01.png
02.png
03.png
...
200.png
Run Code Online (Sandbox Code Playgroud)
是否可以通过 ubuntu 中的任何命令来完成?
以下是我没有运气尝试的命令 -
rename -n '/d{2}\.png$d{2}-1\.png/' *.png
Run Code Online (Sandbox Code Playgroud)
这可以通过更复杂的rename命令来完成:
rename -n 's/(\d{2,3}).png/sprintf("%02d", $1-1) . ".png"/e' *.png
Run Code Online (Sandbox Code Playgroud)
笔记:
/。$1与()(在本例中为(\d{2,3}))组合在一起。100.png将成为1-1.png.e在结束后有 a 的原因/。.(因此. ".png")。sprintf. %02d如果您的号码没有至少两位数,将用零填充。例子:
$ rename -n 's/(\d{2,3}).png/sprintf("%02d", $1-1) . ".png"/e' *.png | head
02.png -> 01.png
03.png -> 02.png
04.png -> 03.png
05.png -> 04.png
06.png -> 05.png
07.png -> 06.png
08.png -> 07.png
09.png -> 08.png
100.png -> 99.png
101.png -> 100.png
Run Code Online (Sandbox Code Playgroud)
根据 的版本rename,如果目标已经存在,重命名文件可能会遇到问题。在这种情况下,一个简单的解决方法是创建一个临时目录并将文件重命名/移动到那里:
mkdir temp
rename -n 's/(\d{2,3}).png/sprintf("temp\/%02d", $1-1) . ".png"/e' *.png
Run Code Online (Sandbox Code Playgroud)
请注意,/后temp转义需求,否则将被视为最后/一个的s//命令。
| 归档时间: |
|
| 查看次数: |
524 次 |
| 最近记录: |