我正在尝试在 shell 脚本上处理日期:我想获取需要包含此表单上的日期的命令的数据:
2010.06.18_00:00:00_TAI
在我的脚本中,我想做一个循环,在一天内每 45 秒编写一次命令。所以我需要得到这样的字符串:
2010.06.18_00:00:45_TAI
2010.06.18_00:01:30_TAI
2010.06.18_00:02:15_TAI
...
请问我怎样才能自动做到这一点?
谢谢 !
如果要以特定格式打印数据,date
命令可以这样做:
$ date "+%Y.%m.%d_%H:%M:%S_TAI"
2013.07.16_14:01:51_TAI
需要 GNUdate
time=$(date -d 2010-06-18 +%s) # midnight June 18
datetime=$(date -d @$time +%Y.%m.%d_%T_TAI)
day=${datetime:8:2}
while [[ ${datetime:8:2} = $day ]]; do
echo $datetime
((time+=45))
datetime=$(date -d @$time +%Y.%m.%d_%T_TAI)
done
这是一个不同但相似的实现,看起来要快得多
awk 'BEGIN {
t=mktime("2010 06 18 00 00 00")
d=strftime("%d", t)
while (d==strftime("%d", t)) {
print strftime("%Y.%m.%d_%T_TAI", t)
t+=45
}
}'