Je veux soustraire "nombre de jours" d'une date en bash. J'essaye quelque chose comme ça ..
echo $dataset_date #output is 2013-08-07
echo $date_diff #output is 2
p_dataset_date=`$dataset_date --date="-$date_diff days" +%Y-%m-%d` # Getting Error
Vous indiquez la date de manière incorrecte. Dites plutôt:
date --date="${dataset_date} -${date_diff} day" +%Y-%m-%d
Si vous devez le stocker dans une variable, utilisez $(...)
:
p_dataset_date=$(date --date="${dataset_date} -${date_diff} day" +%Y-%m-%d)
bon mot:
yesterday=$(date -d "$date -1 days" +"%Y%m%d")
Voici ma solution:
echo $[$[$(date +%s)-$(date -d "2015-03-03 00:00:00" +%s)]/60/60/24]
Il calcule le nombre de jours entre maintenant et 2015-03-03 00:00:
Pour moi, cela a plus de sens si je mets les options à l'extérieur (plus faciles à regrouper), au cas où j'en souhaiterais plus.
date -d "$dataset_date - $date_diff days" +%Y-%m-%d
Où:
1. -d --------------------------------- options, in this case
followed need to be date
in string format (look up on $ man date)
2. "$dataset_date - $date_diff days" -- date arithmetic, more
have a look at article by [PETER LEUNG][1]
3. +%Y-%m-%d -------------------------- your desired format, year-month-day
Le code ci-dessous vous donne un jour de moins
ONE=1
dataset_date=`date`
TODAY=`date -d "$dataset_date - $ONE days" +%d-%b-%G`
echo $TODAY