Calcule la diferencia entre dos fechas en Bash

Calcule la diferencia entre dos fechas en Bash

En Bash, puede calcular fácilmente la diferencia entre dos fechas. Esto puede ser útil en varios escenarios, como calcular el número de días entre dos eventos o determinar la edad de una persona. En este artículo, discutiremos diferentes métodos para calcular la diferencia entre dos fechas en Bash.

Calcular la diferencia entre dos fechas

El comando 'Fecha' en Bash se puede usar para calcular la diferencia entre dos fechas. La sintaxis para usar el comando 'date' es el siguiente:

Echo $ ((($ (date -d "yyyy-mm-dd" +%s)-$ (fecha -d "aaa-mm-dd" +%s))/86400)))
1Echo $ ((($ (date -d "yyyy-mm-dd" +%s)-$ (fecha -d "aaa-mm-dd" +%s))/86400)))

En el comando anterior, reemplace "Aaa yyy-mm-dd" con las dos fechas desea comparar en el mismo formato. El comando generará el número de días entre las dos fechas.

Veamos un ejemplo. Si desea calcular el número de días entre 1 de enero de 2023 y 28 de febrero de 2023, Puede usar el siguiente comando:

Echo $ (((($ (fecha -d "2023-02-28" +%s)-$ (fecha -d "2023-01-01" +%s))/86400)))
1Echo $ (((($ (fecha -d "2023-02-28" +%s)-$ (fecha -d "2023-01-01" +%s))/86400)))

La salida de este comando será:

58
158

Esto significa que hay 58 días Entre el 1 de enero de 2023 y el 28 de febrero de 2023.

Método 2: Uso del comando 'BC'

El comando 'BC' en Bash se puede usar para realizar cálculos matemáticos. Para calcular la diferencia entre dos fechas usando el comando 'BC', use la siguiente sintaxis:

echo \ ($ (date -d "yyyyy-mm-dd" +%s)-$ (fecha -d "yyyy-mm-dd" +%s) \) / 86400 | antes de Cristo
1echo \ ($ (date -d "yyyyy-mm-dd" +%s)-$ (fecha -d "yyyy-mm-dd" +%s) \) / 86400 | antes de Cristo

En el comando anterior, reemplace "Aaa yyy-mm-dd" con las dos fechas desea comparar en el mismo formato. El comando generará el número de días entre las dos fechas.

Por ejemplo:

echo \ ($ (fecha -d "2023-02-28" +%s)-$ (fecha -d "2023-01-01" +%s) \) / 86400 | BC #Output: 58
123echo \ ($ (fecha -d "2023-02-28" +%s)-$ (fecha -d "2023-01-01" +%s) \) / 86400 | BC #Output: 58

Método 3: Uso del comando 'AWK'

El comando 'AWK' en Bash también se puede usar para calcular la diferencia entre dos fechas. Use la siguiente sintaxis:

echo $ (fecha -d "aaa-mm-dd" +%s) $ (fecha -d "yyyy-mm-dd" +%s) | AWK 'print ($ 1 - $ 2) / 86400'
1echo $ (fecha -d "aaa-mm-dd" +%s) $ (fecha -d "yyyy-mm-dd" +%s) | AWK 'print ($ 1 - $ 2) / 86400'

En el comando anterior, reemplace "Aaa yyy-mm-dd" con las dos fechas desea comparar en el mismo formato. El comando generará el número de días entre las dos fechas.

Por ejemplo:

echo $ (fecha -d "2023-02-28" +%s) $ (fecha -d "2023-01-01" +%s) | AWK 'print ($ 1 - $ 2) / 86400' #output: 58
123echo $ (fecha -d "2023-02-28" +%s) $ (fecha -d "2023-01-01" +%s) | AWK 'print ($ 1 - $ 2) / 86400' #output: 58

Conclusión

El cálculo de la diferencia entre dos fechas en Bash se puede hacer utilizando diferentes comandos, como 'Fecha', 'BC' y 'AWK'. Al usar estos comandos, puede calcular fácilmente el número de días entre dos fechas. Saber cómo calcular la diferencia entre dos fechas puede ser útil en varios escenarios, como calcular la edad de una persona o el número de días entre dos eventos.