我点击相机(富士x100s)上没有将filenumber
标签存储在exif中的照片。虽然它会在文件名中添加此信息,例如DSCF0488.JPG
,DSCF0489.JPG
,DSCF0490.JPG
。
如何提取此编号并将其设置为文件编号?
答案 0 :(得分:0)
要使用本机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
的值与第一段代码中的值相同,但这种方法应该适用于绝大多数平台。