2つの異なる日付(たとえば、開始日と2つの日付)の間の日付を印刷したいと思います。
開始日が終了2013-09-05
日が2013-09-10
次の場合は、結果が必要です。
2013-09-05
2013-09-06
2013-09-07
2013-09-08
2013-09-09
2013-09-10
.....など
月末と秒に正しい日付を印刷する必要があります。
ベストアンサー1
最も簡単な方法はdate
コマンドを使用することです。 UNIXの世界では、日付は次の単位で測定されます。エポック以降。日付を秒に変換すると、それを使用してdate
興味のある日付を印刷できます。
END=$(date -d "2013-09-10" +%s);
DATE=$(date -d "2013-09-05" +%s);
while [[ "$DATE" -le "$END" ]]; do date -d "@$DATE" +%F; let DATE+=86400; done
これを端末にコピー/貼り付けると返されます。
2013-09-05
2013-09-06
2013-09-07
2013-09-08
2013-09-09
2013-09-10
関連部分man date
:
-d, --date=STRING
display time described by STRING, not 'now'
%F full date; same as %Y-%m-%d