Depois de ter uma data inicial inicial para um sábado e / ou domingo, você pode usar datas relativas para fazer isso em um script bash usando um loop.
#!/bin/bash
SAT=$(date -dsaturday +%Y-%m-%d)
SUN=$(date -dsunday +%Y-%m-%d)
# 365 days/year / 2 ~= 182 days
ENDSAT=$(date -d "$SAT + 182 days" +"%Y-%m-%d")
ENDSUN=$(date -d "$SUN + 182 days" +"%Y-%m-%d")
echo $SAT
echo $SUN
until [ "$SUN" == "$ENDSUN" ]; do
SAT=$(date -d "$SAT + 7 days" +%Y-%m-%d)
SUN=$(date -d "$SUN + 7 days" +%Y-%m-%d)
echo $SAT
echo $SUN
done
Eu não uso "+ 6 meses" na configuração inicial porque isso pode causar uma ligeira mudança no dia da semana, já que os meses têm quantidades diferentes de dias.