按特定顺序重命名图像

Pai*_*ler 8 command-line rename batch-rename

这是我的问题:我有一个包含 500 个图像的文件夹,名为:

1.jpg
2.jpg
3.jpg
Run Code Online (Sandbox Code Playgroud)

等等..

我复制了那个文件夹,现在我需要将这些相同的图片从 501 重命名为 1000,但顺序如下:

1.jpg  becomes    501.jpg
2.jpg  becomes    502.jpg
3.jpg  becomes    503.jpg          
....
Run Code Online (Sandbox Code Playgroud)

当我使用标准重命名命令时:

i=501;for img in $(find . -iname '*.jpg'); do echo -n "Converting $img"; mv $img $i.jpg  && echo $i && ((i++)); done
Run Code Online (Sandbox Code Playgroud)

它将图像从 501 排序到 1000,但它们都是分散的:

23.jpg becomes 501.jpg,    
66.jpg becomes 502.jpg 
...   
Run Code Online (Sandbox Code Playgroud)

(它们的顺序是正确的,但它混淆了它们)

我知道这可能是我遗漏的一个命令......

wal*_*tor 13

find命令按“目录”顺序(23.jpg, 66.jpg, ...)查找文件。你可以|sort在找到之后放一个。

但是你的方法过于复杂。

for i in $( seq 1 500 ) ; do
    j=$(( $i + 500 ))
    mv $i.jpg $j.jpg
done 
Run Code Online (Sandbox Code Playgroud)

  • `for i in {1..500}; 做...`会更容易。 (3认同)

αғs*_*нιη 11

rename命令。

rename -n 's/^(\d+)/sprintf("%d",$1+500)/e' *.jpg
Run Code Online (Sandbox Code Playgroud)

或者在 purebash和使用shell 参数扩展中

for FILE in *.jpg; do
    mv "$FILE" "$(( ${FILE%.jpg}+500 )).jpg" 
done 
Run Code Online (Sandbox Code Playgroud)


pom*_*sky 7

试试Thunar,它是 Xfce 的默认文件管理器。它非常轻巧,并带有一个方便的批量重命名工具。您可以通过在终端中运行以下命令来安装 Thunar:

sudo apt-get install thunar
Run Code Online (Sandbox Code Playgroud)

您可能也可以从 Ubuntu 软件安装。

如何使用该实用程序

  1. 安装 Thunar 后,启动批量重命名实用程序。
  2. 单击+图标并按正确顺序添加要重命名的文件。
  3. 单击所选文件列表正下方的下拉框,然后选择Numbering。单击它旁边的框并选择Name Only
  4. 在“开始于: ”框中输入 501,将“文本: ”框留空。您应该会在“新名称”列中看到更改的预览。
  5. 要应用更改,请单击重命名文件按钮。

除了编号之外,此实用程序还支持以下操作:

  • 插入日期/时间
  • 插入/覆盖
  • 删除字符
  • 搜索和替换
  • 大写小写

  • 如果你不想要第二个文件管理器,`pyrenamer` 可以完美地工作,当我想要一个 GUI 在输出之前/之后进行比较时,它就是我用来重命名的。 (4认同)
  • 将 fm 切换到...执行一个简单的任务对我来说似乎有点矫枉过正。编写一个简单的 nautilus 脚本扩展比切换 fm 花费的时间更少。 (2认同)

sem*_*uba 5

如果我已经理解了您的正确要求,我认为您可以使用默认的重命名工具来完成:

rename 's/^(\d+)/sprintf("%d",$1+500)/e' *.jpg -vn
Run Code Online (Sandbox Code Playgroud)

您应该-vn在测试后删除(详细 - 无操作)开关,以使更改生效。