作爲bash腳本菜鳥,詳細的答案將不勝感激。 :)如何使用Bash腳本解析EXIF時間戳
我嘗試寫分析從exiv2 commmandline工具,這給了我典型的輸出如JPEG EXIF時間戳輸出bash腳本:
圖片時間戳:2010:07:27 17: 38:52
有沒有辦法解析時間戳,以便其組件像年,月,日,小時,分鐘,秒進入各自的變量?
會sed/gawk成爲路要走嗎?如果是這樣,怎麼樣?還是有其他更好的方法?
這樣,我可以操縱或混合他們,但我喜歡。
這裏是腳本到目前爲止我有:
#!/bin/bash
COUNT=0
SKIPPED=0
FILES=0 # number of files encountered
# declare variables for time stamp
YEAR=0
MONTH=0
DAY=0
HOUR=0
MINUTE=0
SECOND=0
for CURRENT_FILE in * # a for loop to go through all files in current directory
do
if [ -f "$CURRENT_FILE" ] # see if CURRENT_FILE is a file
then
FILETYPE=$(file -b --mime-type "$CURRENT_FILE") # get file type
if [[ $FILETYPE == image/jpeg ]] # see if CURRENT_FILE's mime is image/jpeg
then
((COUNT++))
echo "Processing file $COUNT: $CURRENT_FILE"
exiv2 "$CURRENT_FILE" | grep timestamp >> list
else
((SKIPPED++))
echo "Skipping file $CURRENT_FILE....."
fi
((FILES++))
fi
done
echo "Encountered $FILES files"
echo "Processed $COUNT files"
echo "Skipped $SKIPPED files"
謝謝!
這是驚人的。非常感謝您的快速和非常詳細的答案! :) – hpy 2010-08-30 21:03:57
這是一個非常好的答案。 – dawg 2010-08-31 00:00:40
下面是'split_timestamp'的簡單版本:'split_timestamp(){local S =($ {1 //:/}); echo $ {S [@]:2}; }' – 2010-08-31 02:24:14