Как анализировать метки времени EXIF ​​с помощью сценария Bash

Будучи новичком в bash-скриптах, я буду благодарен за подробные ответы. : )

Я пытаюсь написать сценарий bash, который анализирует временные метки JPEG EXIF, выводимые утилитой командной строки exiv2, что дает мне типичный результат, например:

Временная метка изображения: 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"

Спасибо!

5
задан hpy 30 August 2010 в 20:35
поделиться