Aqui está uma função, que leva o número da semana (e opcionalmente o ano) e retorna a data de segunda-feira:
function monday() {
local week=$1
local year=${2:-$(date +%Y)}
local fst_week_day=$(date -d $year-01-01 +%u)
date -d "$year-01-01 -$((fst_week_day - 1)) day +$(($week - 1)) week" +%F
}
Para obter outros dias da semana, você pode usar date
, por exemplo, para o domingo:
function sunday() {
date -d "$(monday $*) +6 day" +%F
}
Para alterar o formato, use novamente date
:
> date -d "$(monday 13 2013)" +%d.%m.%Y
25.03.2013