编辑(改进问题):
在上图中,您可以看到series文件的命名。
每个文件的文件名是:
01-NameOfProject_Data Set X-01.png
其中 X
是从 1 到 24 的顺序
(请注意!不是 01、02、...、24)
我创建了两个 .csv 文件(以探索哪个更适合您的回答),如图所示。
第一步: 我需要将国家代码前缀添加到每个相应的文件中。 例如。
EN_01-NameOfProject_Data Set 1-01.png
第二步: 我需要删除部分
_Data Set X-01
结果将是
EN_01-NameOfProject.png
我在上面的两个步骤中请求帮助,以便我更好地理解程序。 我需要通过 macOS 终端执行此操作。我已经通过 Homebrew 安装重命名
brew install rename
原题: 我有一个看起来像这样的文件列表:
01-NameOfProject_Data Set 1-01.png
01-NameOfProject_Data Set 2-01.png
01-NameOfProject_Data Set 3-01.png
...
01-NameOfProject_Data Set 24-01.png
我还有一个 Excel 文件(我可以将其另存为 .csv)。 它只有一列,行数与上述文件的数量完全一样。 每个单元格都有一个语言简码。 它看起来像这样:
EN
GR
IT
...
BU
正确(相应)顺序的 Excel 文件作为文件意味着:
01-NameOfProject_Data Set 1-01.png
确实是英文的(EN
)等等
您将如何批量重命名文件,以便最终得到如下内容:
EN_01-NameOfProject_new-text.png
GR_01-NameOfProject_new-text.png
IT_01-NameOfProject_new-text.png
...
BU_01-NameOfProject_new-text.png
非常感谢!
rename
:删除
-n
开关,又名dry-run当你的尝试令人满意重命名真实.
#!/usr/bin/env bash
c=0 arr=( * )
while IFS= read -r country; do
rename -n "s/^(\d+).*/${country}_${1}NameOfProject_new-text.png/" "${arr[c++]}"
done < /tmp/file.csv
rename(01-NameOfProject_Data Set 1-01.png, EN_NameOfProject_new-text.png)
rename(01-NameOfProject_Data Set 2-01.png, GR_NameOfProject_new-text.png)
rename(01-NameOfProject_Data Set 24-01.png, IT_NameOfProject_new-text.png)
rename(01-NameOfProject_Data Set 3-01.png, BU_NameOfProject_new-text.png)
#!/usr/bin/env bash
readarray -td '' files < <(
ls --zero -v -- *.png
)
c=0
while IFS= read -r country; do
rename -0 -n "s/^(\d+).*/${country}_${1}NameOfProject_new-text.png/" "${files[c++]}"
done < /tmp/file.csv
rename(01-NameOfProject_Data Set 1-01.png, EN_NameOfProject_new-text.png)
rename(01-NameOfProject_Data Set 2-01.png, GR_NameOfProject_new-text.png)
rename(01-NameOfProject_Data Set 3-01.png, IT_NameOfProject_new-text.png)
rename(01-NameOfProject_Data Set 24-01.png, BU_NameOfProject_new-text.png)