重命名每个其他文件

时间:2013-06-20 19:02:27

标签: automator

我有一些我想要重命名的文件(手动操作太多),通常我会使用Automator,但问题是,我需要将其他所有文件调用为与之前的文件相同,但使用2代替1

这是我目前为止的文件

xxx - 401a - yyy.zzz
xxx - 401b - yyy.zzz
xxx - 402a - yyy.zzz
xxx - 402b - yyy.zzz
xxx - 403a - yyy.zzz

依此类推,但我想将它们重命名为

xxx - 401-pt1.zzz
xxx - 401-pt2.zzz
xxx - 402-pt1.zzz
xxx - 402-pt2.zzz
xxx - 403-pt1.zzz

无论如何用automator做到这一点?问,因为我很少使用Automator,这意味着我不是你所谓的专家。

编辑:这就是我想要实现的目标:http://wiki.plexapp.com/index.php/Media_Naming_and_Organization_Guide#Stacked_Episodes

1 个答案:

答案 0 :(得分:2)

如果您对该工具一无所知,那么您不介意使用其他工具吗?一个简单的shell命令怎么样?

这是Bash中提高通用性的相同操作。你可能不关心前两个,因为它已经硬编码了yyy和zzz,但我这样做是为了向你展示the sed command以了解第三个。

for file in * ; do mv "$file" "$(echo $file | sed 's/a - yyy/-pt1/g')"; mv "$file" "$(echo $file | sed 's/b - yyy/-pt2/g')"; done

for file in * ; do mv "$file" "$(echo $file | sed 's/a - .*.zzz/-pt1.zzz/g')"; mv "$file" "$(echo $file | sed 's/b - .*.zzz/-pt2.zzz/g')"; done

for file in * ; do mv "$file" "$(echo $file | sed -r 's/a - .*.([a-z]{3})/-pt1.\1/')"; mv "$file" "$(echo $file | sed -r 's/b - .*.([a-z]{3})/-pt2.\1/')"; done

当然,其他命令必须有许多其他方法。 你会得到不重要的错误,因为mv在整个批次中完成了两次。