2

我需要以 15 分钟间隔获取 Epoch 编号,然后是日期和时间。结果应该是这样的:

1376708400|2013-08-17 00:00:00
1376709300|2013-08-17 00:15:00
1376710200|2013-08-17 00:30:00
1376711100|2013-08-17 00:45:00
1376712000|2013-08-17 01:00:00
1376712900|2013-08-17 01:15:00
1376713800|2013-08-17 01:30:00
1376714700|2013-08-17 01:45:00
1376715600|2013-08-17 02:00:00
1376716500|2013-08-17 02:15:00
1376717400|2013-08-17 02:30:00

......等等......总共我应该有96行。

我现在最大的疑问是如何将分钟数增加(或求和)15分钟,我已经尝试过(原谅我的混乱,我还在学习):

i=96
_incrementatime='+15 minutos'
count=1

_Date=$(`date "2013-08-29 00:00:00"`)
_dataEmSeg = `date -d "2013-08-29 00:00:00" +%s`

while  test $i -ne 0
do
    _VarData=$(`date --date="$_incrementatime*count"`)

    _exprt=$(expr `$_Date+$_VarData`)
    echo "$_dataEmSeg  e  $_exprt    "

    i=$((i-1))
    count=$((count+1))
done

如果有人能给我一些解决这个问题的方法,我将不胜感激。

4

2 回答 2

1

您可以基于此:

#!/bin/bash

DATE='2013-08-29 00:00:00'
TIMESTAMP=$(date -d "$DATE" '+%s')
INCREMENT=$(( 60 * 15 ))
STEPS=5

echo "$TIMESTAMP|$DATE"

for (( I = 1; I <= STEPS; ++I )); do
    (( TIMESTAMP += INCREMENT ))
    DATE=$(date -d "@$TIMESTAMP" '+%F %T')
    echo "$TIMESTAMP|$DATE"
done

输出:

1377705600|2013-08-29 00:00:00
1377706500|2013-08-29 00:15:00
1377707400|2013-08-29 00:30:00
1377708300|2013-08-29 00:45:00
1377709200|2013-08-29 01:00:00
1377710100|2013-08-29 01:15:00
于 2013-09-04T21:57:08.390 回答
0

你的增量线:

VarData=$(`date --date="$_incrementatime*count"`)

应该:

VarData=$(`date --date="$_incrementatime*$count"`)

如果要count显示变量。

于 2013-09-04T20:18:48.597 回答