Linuxで特定の日付範囲のすべての土曜日のリストをYYYYMMDD形式(例:20170101〜20170630)で取得するには?

Linuxで特定の日付範囲のすべての土曜日のリストをYYYYMMDD形式(例:20170101〜20170630)で取得するには?

Linuxでは、特定の日付範囲(20170101から20170630など)のすべての土曜日のリストをYYYYMMDD形式でインポートする必要があります。

ベストアンサー1

GNU日付と無差別代入の使用:

start=20170101
end=20170630
cur=$start

increment="1 day"
while [ $(date +%s -d "$cur") -le $(date +%s -d "$end") ]
do
  if [ "$(date +%A -d "$cur")" = "Saturday" ]
  then
    printf "%s\n" "$cur"
    increment="1 week"
  fi
  cur=$(date +%Y%m%d -d "$cur + $increment")
done

おすすめ記事