如何使用前 10 个字符重命名多个文件?

如何使用前 10 个字符重命名多个文件?

我在重命名多个文件时遇到了问题,需要用旧名称的前 10 个字符替换名称。我尝试在互联网上寻找解决方案,但没有找到答案。

例子:

原始文件名:

1208605001abAcd.jpg 
1201230111FbcAdee.jpg 
11512345714x611aaa.jpg 

我想要实现的目标:

1208605001.jpg 
1201230111.jpg 
1151234571.jpg

答案1

你可以试试:

rename -n 's/(.{10}).*(\.jpg)$/$1$2/' *.jpg

例子:

$ rename -n 's/(.{10}).*(\.jpg)$/$1$2/' *.jpg
11512345714x611aaa.jpg -> 1151234571.jpg
1201230111FbcAdee.jpg -> 1201230111.jpg
1208605001abAcd.jpg -> 1208605001.jpg

-n选项仅模拟命令,以便您可以验证更改。 请在不使用此选项的情况下运行以真正进行更改。

正则表达式(.{10}).*(\.jpg)包括:

  • .{10}- 任意 10 个字符,一组(…),后跟
  • .*- 任意数量的任意字符,后跟
  • \.jpg$$-第二组中文件名末尾的扩展名 ( )

替换$1$2只是第一组,然后是第二组。

答案2

你只用 bash 就可以做到:

for FILE in *.jpg ; do mv "${FILE}" "${FILE:0:10}.jpg" ; done

只需一点工作,您就可以获得文件扩展名并自动添加到新名称。

答案3

如果您使用zsh

zmv '(*).(*)' '${1:0:10}.$2'

如果尚未完成,您可能需要先运行:

autoload zmv

答案4

如果您想要 GUI 版本,请查看 pyRenamer,一个强大的批量重命名工具。

pyRenamer 的徽标

pyRenamer 有两大优势。一是它允许你进行“假设分析”,换句话说,在提交更改之前查看会发生什么。

另一个优点在其描述中得到了很好的解释:

您可以使用模式、搜索和替换、替换、插入或删除文本来重命名文件,甚至手动重命名文件。

您还可以使用 EXIF 标签重命名图像,使用内部标签重命名音乐。

要安装,请使用 Ubuntu 软件中心或您最喜欢的软件安装程序,或者使用命令行发出以下命令:

sudo apt install pyrenamer

相关内容