date
on MacOS does not support --date
, so a workaround is needed.
Converting Date to unix epoch, adding one day in epoch and converting back.
The Scripty Way
Taken from a blog post
#!/bin/zsh
start=$year-01-01
end=$year-12-31
currentDateTs=$(date -j -f "%Y-%m-%d" $start "+%s")
endDateTs=$(date -j -f "%Y-%m-%d" $end "+%s")
offset=86400
while [ "$currentDateTs" -le "$endDateTs" ]
do
date=$(date -j -f "%s" $currentDateTs "+%Y-%m-%d")
echo $date
currentDateTs=$(($currentDateTs+$offset))
done
The Brew Way
As I found out long after writing the above you can simply brew install coreutils
and get a date command with the --date
option.
The only thing to note there is this: Commands also provided by macOS have been installed with the prefix "g".
So the proper date command can now be accessed as gdate
.