【发布时间】:2011-04-05 23:05:47
【问题描述】:
作为一个 bash 脚本新手,我们将不胜感激。 :)
我正在尝试编写一个 bash 脚本来解析从 exiv2 命令行实用程序输出的 JPEG EXIF 时间戳,这给了我典型的输出,例如:
图片时间戳: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"
谢谢!
【问题讨论】:
标签: parsing bash time timestamp