日期批量重命名文件

问题描述:

我呈现140000帧来创建它们的电影。 然而,它从1.png开始,如果它开始于000001.png,以便在以最终切割快车输入时保持顺序良好,那将会更好。日期批量重命名文件

我曾经有一个程序的名称,但它是基于power-pc,所以它不再工作。 此外,该程序甚至连一批300个文件都很糟糕,所以我想这会更好地使用终端。

我已经看到了重命名的例子,但大多数情况下用于更改扩展例如或更改前缀。

有人可以帮我用正确的终端脚本吗?我需要尽快完成这个项目,否则我会重新渲染它,但需要15个小时才能完成。

for i in *.png 
do 
    name=${i%.png} 
    [[ $name =~ ^[0-9]+$ ]] && mv $i "$(printf '%06d' $name).png" 
done 
+0

我必须在1次输入此值还是在每行后输入回车? – clankill3r 2012-03-11 16:41:38

+0

你可以把'all'放在一行中,';' – kev 2012-03-12 00:59:43

+0

否';''do'后面' – kev 2012-03-12 01:08:53

效率不高,但因为你只需要运行一次:

for i in `seq 1 140000`; do 
    mv $i.png `printf %06d $i`.png 
done 

编辑:我认为(也许错误地),你是使用Linux。这在Windows上不起作用。

编辑:是的,这应该在Mac OS X中工作。而不是在提示符中键入这些行,您可以将其保存到文件。通常,您可以使用名称rename.sh来保存这样的文件。那么你可以像这样的终端上运行它:

sh rename.sh 

如果你不确定,你可以改变mv线分为:

echo mv $i.png `printf %06d $i`.png 

这将打印在屏幕上,这将是该命令执行。然后,如果一切看起来都正常,则将其更改回原始并再次运行。

如果文件数量不同,只需将140000替换为最后一个文件的编号即可。

+0

我使用Mac OS X,因此必须工作的权利? 我检查,发现者说它是121596文件,但是当我复制粘贴到另一个点是140000(更多)的东西,所以我必须在你的脚本中使用140000做什么? 也必须输入一行或三次? – clankill3r 2012-03-11 16:40:42

+1

我编辑了我的答案来回答你的问题。 – 2012-03-11 17:05:29

+0

我标记了kev的答案,因为他接受的原因是他更清洁,我认为这对于基于此选择的*的质量很重要。 (和我用他的线)。然而,你在这里真的很有帮助,所以非常感谢。希望我可以举出2个答案... – clankill3r 2012-03-11 23:04:28

如果您使用的是Windows

@echo off 
setlocal enableDelayedExpansion 
for %%F in (*.png) do (
    set "name=00000%%~nF" 
    ren "%%F" "!name:~-6!.png" 
)