循环遍历文件扩展名注释添加 EXIF 重命名和复制

循环遍历文件扩展名注释添加 EXIF 重命名和复制

该脚本从条目中读取用户输入,就像filename.jpg 在当前目录中创建目录一样。然后重命名文件并添加文件的 EXIF 数据,然后将原始文件复制到刚刚创建的目录中。

使用 imagemagick 进行转换

我正在尝试找出一个循环,遍历包含 100 个文件(按文件扩展名排序,如 (.*jpg、*png、*jpeg)),自动重命名,添加 EXIF 数据,如果不存在则创建新目录(目录内),将原始文件复制到新目录。除了扩展名外,实际上不需要用户输入。对于这些特定的扩展名。

#!/bin/bash
    ls -XI "*.sh" |sort -g -r
    echo
    echo "Enter Image name with file extension"
    read MGNM
    newdir=${PWD##*/}
    LBLNM=`identify -format "%[EXIF:DateTime]" $MGNM`
    echo "${LBLNM[@]}"
    mkdir -vp $newdir
    convert $MGNM -background Khaki -pointsize 100 label:"$LBLNM" -gravity Center -append ADDEDPREFIX-$MGNM
    mv -v $MGNM $newdir/
    echo
    ls -XI "*.sh" |sort -g -r
    echo
    ls -XI "*.sh" $newdir/|sort -g -r

可能添加调整大小,在添加 exif 数据后,然后将原始数据复制到工作目录内的某个目录?

mogrify -path $newdir/ -resize 50% -quality 80  *.JPG

答案1

如果这对你来说已经有效,而你想要的只是自动化它,那么最有可能的是你需要将它全部放入一个 shell 循环中......这里有一个例子:

for f in {*.jpg,*.jpeg,*.png}; do
  newdir="${PWD##*/}"
  LBLNM=$(identify -format "%[EXIF:DateTime]" "$f")
  mkdir -vp "$newdir"
  convert "$f" -background Khaki -pointsize 100 label:"$LBLNM" -gravity Center -append ADDEDPREFIX-"$f"
  mv -v "$f" "$newdir"/
  mogrify -path "$newdir"/ -resize 50% -quality 80 "$f"
  done

...它将使用 glob 模式循环遍历当前工作目录中的所有文件*.jpg*.jpeg*.png根据您的意愿对它们执行操作。

相关内容