¿Cómo agregar un día hasta la fecha en bash?


24

Por ejemplo, tengo fecha: 4 de agosto de 1993 y quiero agregarle 348 días, ¿cómo puedo hacerlo en bash?

Respuestas:


30

Solo usa el datecomando con la -dopción:

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

Puede cambiar el formato de salida si desea:

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

1
También puede usar el formato de fecha del OP:date -d "4 August 1993 348 days" +"%d %B %Y"
pausa hasta nuevo aviso.

1
Según la fecha del hombre:%F full date; same as %Y-%m-%d
jperelli

12

En bash en Mac OS X, puedes hacer esto:

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

Salida: 1994-07-18


1
He estado buscando esto por un tiempo. Yo aprecio. Quería reemplazar el número "348" con una variable de un script bash. Terminé con NEXT_DATE=$(date -j -v +$(( incrementDays ))d -f "%Y-%m-%d" "1993-08-04" +%Y-%m-%d)cualquiera que quiera hacer esto.
Ian G

1

Aquí hay un uso un poco más complejo de esto:

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

o con tubos:

seq 1 5 | xargs -I {} date -d "2014-02-01 {} days" +%Y-%m-%d
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.