举个例子,假设我有一个包含这些文件夹的文件夹:
Universal 2023 02 15 Some Name
Universal 2023 02 15 Some Name and Words After
Sony Some Name 2023 02 15
Sony Some Name 2023 02 15 and Words After
Desired output
Some Name - 2023 02 15 - Universal
Some Name - 2023 02 15 - And Words After - Universal
Some Name - 2023 02 15 - Sony
Some Name - 2023 02 15 - and Words After – Sony
我为每个名称结构写了一个命令。
1。 « Universal 2023 02 15 Some Name » 将更名为: « 一些名字 - 2023 02 15 - 通用 » 使用此命令:
rename -v 's/([\s\S]+)\s((\d{4})\s(\d{2})\s(\d{2}))\s(([\s\S]+)\s([\s\S]+))/$6 - $2 - $1/g' *
« Universal 2023 02 15 Some Name and Words After » 将更名为: « 一些名字 - 2023 02 15 - 之后的话 - 通用 » 使用此命令:
rename -v 's/([\s\S]+)\s((\d{4})\s(\d{2})(\s)(\d{2}))\s((\w+)\s(\w+))\s([\s\S]+)/$7 - $2 - $10 - $1/g' *
« Sony Some Name 2023 02 15 » 将更名为: « 一些名字 - 2023 02 15 - 索尼 » 使用此命令:
rename -v 's/([\s\S]+)\s((\w+)\s(\w+))\s((\d{4})\s(\d{2})\s(\d{2}))/$2 - $5 - $1/g' *
rename -v 's/([\s\S]+)\s((\d{4})\s(\d{2})\s(\d{2}))\s(([\w]+)\s([\w]+))\s([\s\S]+)/$6 - $2 - $9 - $1/g' *
当我想重命名这些文件夹时,我必须将它们归类到单独的文件夹中并运行相应的命令,然后在完成后将它们全部放回同一个文件夹中。它很烦人。所以我想在 bash 中编写一个脚本,以避免将它们单独归档并使所有内容都从主文件夹开始。在这里,但它不起作用。有人可以告诉我我的错误在哪里吗???
我的剧本:
for i in $*/; do
# for Universal 2023 02 15 Some Name
if [[ "$i" =~ ([\s\S]+)\s((\d{4})\s(\d{2})\s(\d{2}))\s(([\s\S]+)\s([\s\S]+)) ]];
then
rename -v 's/([\s\S]+)\s((\d{4})\s(\d{2})\s(\d{2}))\s(([\s\S]+)\s([\s\S]+))/$6 - $2 - $1/g' *
# for Universal 2023 02 15 Some Name and Words After
elif [[ "$i" =~ ([\s\S]+)\s((\d{4})\s(\d{2})(\s)(\d{2}))\s((\w+)\s(\w+))\s([\s\S]+) * ]];
then
rename -v 's/([\s\S]+)\s((\d{4})\s(\d{2})(\s)(\d{2}))\s((\w+)\s(\w+))\s([\s\S]+)/$7 - $2 - $10 - $1/g' *
# for Sony Some Name 2023 02 15
elif [[ "$i" =~ ([\s\S]+)\s((\w+)\s(\w+))\s((\d{4})\s(\d{2})\s(\d{2})) ]];
then
rename -v 's/([\s\S]+)\s((\w+)\s(\w+))\s((\d{4})\s(\d{2})\s(\d{2}))/$2 - $5 - $1/g' *
# for Sony Some Name 2023 02 15 and Words After
else [[ "$i" =~ ([\s\S]+)\s((\w+)\s(\w+))\s((\d{4})\s(\d{2})\s(\d{2})) ]];
then
rename -v 's/([\s\S]+)\s((\d{4})\s(\d{2})\s(\d{2}))\s(([\w]+)\s([\w]+))\s([\s\S]+)/$6 - $2 - $9 - $1/g' *
fi
done
任何人都可以帮助我!!!!!!!!! 非常感谢! 马丁