我正在编写一个 bash 脚本,它根据 EXIF 标签重命名 JPG 文件。我的原始文件是这样命名的:
IMG_2110.JPG
IMG_2112.JPG
IMG_2113.JPG
IMG_2114.JPG
Run Code Online (Sandbox Code Playgroud)
我需要像这样重命名它们:
2015-06-07_11-21-38_iPhone6Plus_USA-CA-Los_Angeles_IMG_2110.JPG
2015-06-07_11-22-41_iPhone6Plus_USA-CA-Los_Angeles_IMG_2112.JPG
2015-06-13_19-05-10_iPhone6Plus_Morocco-Fez_IMG_2113.JPG
2015-06-13_19-12-55_iPhone6Plus_Morocco-Fez_IMG_2114.JPG
Run Code Online (Sandbox Code Playgroud)
我的 bash 脚本使用 exiftool 解析 EXIF 标头并重命名文件。对于那些不包含 EXIF 创建日期的文件,我使用的是文件修改时间。
#!/bin/bash
IFS=$'\n'
for i in *.*; do
MOD=`stat -f %Sm -t %Y-%m-%d_%H-%m-%S $i`
model=$( exiftool -f -s3 -"Model" "${i}" )
datetime=$( exiftool -f -s3 -"DateTimeOriginal" "${i}" )
stamp=${datetime//:/-}"_"${model// /}
echo ${stamp// /_}$i
done
Run Code Online (Sandbox Code Playgroud)
我被困在这个位置。我需要使用来自 EXIF 标签的 GPS 信息来确定国家和城市。exiftool 提供了一个名为“GPS 位置”的字段。在所有字段中,这似乎对确定位置最有用。
GPS Position : 40 deg 44' 49.36" N, 73 deg 56' 28.18" W
Run Code Online (Sandbox Code Playgroud)
Google 提供了用于地理定位的公共 …