如何使用 csv 文件中的信息重命名照片
How to rename photos using information from csv file
我是 unix 新手,需要您的帮助。
我想重命名很多照片,以便它们与图片上的项目代码相对应。我有一个 .csv 文件,它具有原始的 .jpg 名称,然后是我希望将照片重命名为的代码,在连续的列中。例如:
IMG_1234.JPG,AB001,AB003,AB004
IMG_1345.JPG,AB011,AB012,AB013,AB014,AB015
IMG_1456.JPG,AB112
IMG_1678.JPG,AB125,AB126
所以我想IMG_1234.JPG复制3次并重命名为AB001、AB003、AB004等
我知道我需要一个脚本并且我可以复制和重命名文件,但我不知道如何通过 csv 文件制作脚本 运行 并将 .jpg 复制并重命名为名称跟随直到一个空单元格,然后移动到下一行并复制并重命名该 .jpg 等。
我希望我的问题很清楚,对于我的知识有限,我深表歉意。
提前致谢!
编辑:图片名称前面有目录(带空格),因为照片位于不同的文件夹中。例如:
./Photos sorted/Samples1-100/IMG_1134.JPG
这应该可以满足您的要求。 csv 文件的文件名作为参数提供给脚本。您可以调整复制命令中的路径,目前所有内容都必须在同一目录中。如果你在 mac 或 linux 上使用它,你也可以使用 "ln -s" 代替 if "cp" 为原始文件创建符号 link 以保存磁盘 space.
CSVFILE=
cat $CSVFILE |\
while read LINE; do
SPLIT=`echo $LINE | tr "," " "`
FIRST=0
for NAME in $SPLIT; do
if [ $FIRST -eq 0 ]; then
SRCNAME=$NAME
else
DSTNAME=$NAME
cp ${SRCNAME}.jpg ${DSTNAME}.jpg
fi
((FIRST++))
done
done
我是 unix 新手,需要您的帮助。
我想重命名很多照片,以便它们与图片上的项目代码相对应。我有一个 .csv 文件,它具有原始的 .jpg 名称,然后是我希望将照片重命名为的代码,在连续的列中。例如:
IMG_1234.JPG,AB001,AB003,AB004
IMG_1345.JPG,AB011,AB012,AB013,AB014,AB015
IMG_1456.JPG,AB112
IMG_1678.JPG,AB125,AB126
所以我想IMG_1234.JPG复制3次并重命名为AB001、AB003、AB004等
我知道我需要一个脚本并且我可以复制和重命名文件,但我不知道如何通过 csv 文件制作脚本 运行 并将 .jpg 复制并重命名为名称跟随直到一个空单元格,然后移动到下一行并复制并重命名该 .jpg 等。
我希望我的问题很清楚,对于我的知识有限,我深表歉意。
提前致谢!
编辑:图片名称前面有目录(带空格),因为照片位于不同的文件夹中。例如:
./Photos sorted/Samples1-100/IMG_1134.JPG
这应该可以满足您的要求。 csv 文件的文件名作为参数提供给脚本。您可以调整复制命令中的路径,目前所有内容都必须在同一目录中。如果你在 mac 或 linux 上使用它,你也可以使用 "ln -s" 代替 if "cp" 为原始文件创建符号 link 以保存磁盘 space.
CSVFILE=
cat $CSVFILE |\
while read LINE; do
SPLIT=`echo $LINE | tr "," " "`
FIRST=0
for NAME in $SPLIT; do
if [ $FIRST -eq 0 ]; then
SRCNAME=$NAME
else
DSTNAME=$NAME
cp ${SRCNAME}.jpg ${DSTNAME}.jpg
fi
((FIRST++))
done
done