0

シェルスクリプトで日付を処理しようとしています: この形式で日付を含むコマンドを必要とするデータを取得したい:

2010.06.18_00:00:00_TAI 

私のスクリプトでは、1 日の間に 45 秒ごとにコマンドを書き込むループを実行したいと考えています。したがって、次のような文字列を取得する必要があります。

2010.06.18_00:00:45_TAI

2010.06.18_00:01:30_TAI

2010.06.18_00:02:15_TAI 

...

どうすれば自動的にそれを行うことができますか?

ありがとうございました !

4

2 に答える 2

0

特定の形式でデータを印刷したい場合は、dateコマンドでそれを実行できます。

$ date "+%Y.%m.%d_%H:%M:%S_TAI"
2013.07.16_14:01:51_TAI
于 2013-07-16T10:03:16.003 に答える
0

GNU が必要date

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
    }
}'
于 2013-07-16T10:21:14.297 に答える