Datecalc equivalente para Linux

5

Estou usando um script em ksh para obter uma data 91 dias antes de hoje usando datecalc em um servidor Solaris 10. Qual seria o equivalente a isso no Linux?

month='datecalc -a $(date +"%Y %m %d") - 1 |awk {'print $2'}'
day='datecalc -a $(date +"%Y %m %d") - 91 |awk {'print $3'}'
year='datecalc -a $(date +"%Y %m %d") - 1 |awk {'print $1'}'
    
por TMS 20.10.2015 / 18:22

2 respostas

10

Você pode usar date like

date -d "91 days ago" +"%Y %m %d"

No entanto, se você está apenas alimentando o awk para obter campos específicos, pode imprimir a parte que deseja, como

month=$(date -d "91 days ago" +"%m")
day=$(date -d "91 days ago" +"%d")
year=$(date -d "91 days ago" +"%Y")
    
por 20.10.2015 / 18:26
3

Comando GNU date para o resgate.

$ date
Tue Oct 20 17:27:51 BST 2015
$ date --date='91 days ago'
Tue Jul 21 17:27:52 BST 2015
$
    
por 20.10.2015 / 18:28