Como você marcou sua pergunta com Ubuntu , abaixo é suficiente.
$ uptime -p
up 4 weeks, 1 day, 1 hour, 1 minute
veja tempo de atividade do homem para o Ubuntu.
-p, --pretty
show uptime in pretty format
Ou com seu próprio script:
awk -F'( |,|:)+' '{
printf("%dweeks, %.fdays, %dhours, %dminutes\n",
$5/7, ($5/7-int($5/7))/0.143+.05, $7, $8)
}' <(uptime)
A cada dia ~ = 0,143 semana, e dividimos o resultado em 0.143 para obter dias, em seguida adicionamos 0.5 e com printf .f controle ele arredondará para o próximo número inteiro (faz como Ceil função).
Pode ser necessário alterar $5 , $7 e $8 com $6 , $8 e $9 .