我在没有将filenumber
标签存储在 exif 中的相机(富士 x100s)上单击照片。尽管它在文件名中添加了这些信息,例如DSCF0488.JPG
,、、、。DSCF0489.JPG
DSCF0490.JPG
如何提取此编号并将其设置为文件编号?
要从示例中的文件中提取数字,使用本机 bash 正则表达式,您可以执行以下操作:
for i in *.JPG; do
[[ $i =~ ([[:digit:]]+) ]] && echo ${BASH_REMATCH[1]}
done
从包含问题中文件的目录运行该循环将给出输出:
0488
0489
0490
因此,如果您有一个名为exif_script
可以将此信息添加到文件中的工具,您可以执行以下操作:
for photo in *.JPG; do
if [[ $photo =~ ([[:digit:]]+) ]]; then
file_number="${BASH_REMATCH[1]}"
exif_script # set number to $file_number
fi
done
如果你没有足够新的 bash 来支持正则表达式匹配,你可以使用 sed:
for i in *.JPG; do file_number=$(echo "$i" | sed 's/[^0-9]\{1,\}\([0-9]\{1,\}\).JPG/\1/'); done
的值$file_number
将与第一段代码中的值相同,但这种方法应该适用于绝大多数平台。