Tengo una cadena de fecha que puedo analizar y formatear con el comando date
de un script bash.Fecha relativa de Bash (x días atrás)
Pero, ¿cómo puedo determinar cuántos días atrás esta fecha era de mi script? Me gustaría terminar con un número.
Tengo una cadena de fecha que puedo analizar y formatear con el comando date
de un script bash.Fecha relativa de Bash (x días atrás)
Pero, ¿cómo puedo determinar cuántos días atrás esta fecha era de mi script? Me gustaría terminar con un número.
Usted puede hacer algunas aritmética fecha:
DATE=01/02/2010
echo $((($(date +%s) - $(date -d "$DATE" +%s)) /(24 * 60 * 60)))
Convierte la fecha y ahora en segundos desde la época, restar, dividir por el número de segundos en un día:
#!/bin/bash
((a = `date -d "Wed Jan 12 02:33:22 PST 2011" +%s`))
((b = `date +%s`))
echo $(((b-a)/(60*60*24)))
En una nota lateral, puedes hacer fechas relativas en' date' directamente: 'date --date =" 2011-01- 13 + 5 días "' – l0b0
¡Aseado! :) Gracias. Pero eso solo es útil si está apuntando a un número específico de días diferentes de una fecha determinada, sin encontrar la diferencia entre dos fechas determinadas. – sarnold
No es necesario hacer una asignación simple dentro de doble paréntesis (sin embargo, no podría tener espacios alrededor del signo igual). Sin embargo, debe usar '$()' para la sustitución de comandos en lugar de usar los backticks. –
Uso fecha en sí mismo como valor de fecha para la fecha. Ejemplo hace 5 días:
date -d "`date`-5days"
No es necesario abrir una subshell: 'date -d" -5days "' es lo mismo :) – neurino
Vale la pena mencionar aquí que la versión de la fecha en AIX no tiene una opción -d, por lo que aunque el PO estaba pidiendo una solución Linux, esto no sería una cruzada solución de plataforma. – frankster
En OSX las páginas man dicen: '-d dst Establece el valor del kernel para el horario de verano. – andsens