我有一组名为:ddmmyyyyxxxx.jpg
(xxxx 只是一个序列号)的照片文件,我正在尝试搜索但遗憾的是没有结果,是将文件名重命名为yyyy-mm-dd-xxxx.jpg
。
我在网上找到的所有方法要么是替换某个字符,要么是更改字母大小写。
答案1
你应该能够使用捕获组使用基于 perl 的rename
命令,例如最简单的
rename -vn -- 's/^(\d{2})(\d{2})(\d{4})/$3-$2-$1/' *.jpg
(注意:这-n
是一个试运行标志:除非您将其删除,否则它实际上不会改变任何东西。)
答案2
您可以使用以下 bash 脚本执行此操作。
#!/bin/bash
for file in $(ls)
do
date=${file:0:2}
month=${file:2:2}
year=${file:4:4}
sequence=${file:8:4}
extension=${file: -3}
mv $file $year\-$month\-$date\-$sequence.$extension
done
echo all files have been renamed
为了使用此脚本,请打开终端并输入 ,touch script
然后chmod +x script
使其可执行。然后运行并将上述代码复制粘贴到终端中。按+nano script
保存文件,然后按。然后将脚本移动到包含这些图像的目录并通过运行 执行脚本。CTRLXYenter./script
这会将脚本目录中的所有文件重命名为您请求的模式。但是,它也会重命名脚本本身,因此如果您想再次运行脚本,请注意它将具有不同的名称(最终名称将是pt-ri-sc-.ipt
我建议您mv pt-ri-sc-.ipt script
在再次使用脚本之前运行。否则,您可以替换ls
并将ls $1
脚本存储在其他地方,以避免意外重命名。此外,此脚本仅对名称顺序与问题中给出的顺序一致的文件正常运行(ddmmyyyyxxxx.jpg
)。对于任何其他文件,文件最终都会有一个奇怪的名称。
答案3
对于这种过程,我使用 Krename,它有一个 GUI 并且有点直观...在 ubuntu 下,您可以在软件中心找到它。