come aggiungere un giorno ad oggi in bash?


24

Ad esempio, ho una data: il 4 agosto 1993 e voglio aggiungervi 348 giorni, come posso farlo in bash?

Risposte:


30

Basta usare il datecomando con l' -dopzione:

$ date -d "1983-08-04 348 days"
Tue Jul 17 00:00:00 BST 1984  

È possibile modificare il formato di output se si desidera:

$ date -d "1983-08-04 2 days" +%Y-%m-%d
1983-08-06                                           

1
È inoltre possibile utilizzare il formato data dell'OP:date -d "4 August 1993 348 days" +"%d %B %Y"
In pausa fino a nuovo avviso.

1
Secondo la data dell'uomo:%F full date; same as %Y-%m-%d
jperelli,

12

In bash su Mac OS X, puoi farlo:

date -j -v +348d -f "%Y-%m-%d" "1993-08-04" +%Y-%m-%d

Produzione: 1994-07-18


1
Lo stavo cercando da un po '. Apprezzo. Volevo sostituire il numero "348" con una variabile di uno script bash. Ho finito NEXT_DATE=$(date -j -v +$(( incrementDays ))d -f "%Y-%m-%d" "1993-08-04" +%Y-%m-%d)per chiunque cercasse di farlo.
Ian G,

1

Ecco un uso un po 'più complesso di questo:

for i in `seq 1 5`;
do;
  date -d "2014-02-01 $i days" +%Y-%m-%d;
done;

o con tubi:

seq 1 5 | xargs -I {} date -d "2014-02-01 {} days" +%Y-%m-%d
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.