lunes, 25 de julio de 2011

La forma más sencilla de comparar dos fechas en bash

Usualmente debo estar comparando dos fechas en para saber la cantidad de días y mes que hay entre dichas fechas. Siempre realizaba esta tarea en LibreOffice Calc pero me aburrí de abrirlo cada vez, así que busqué algún comando que me devolviera la diferencia entre dos fechas. Los que encontré eras scripts algo complejos para alguien no informático, hasta que se me ocurrió la forma más sencilla que no encontré en la web.

La solución pasa por utilizar SQLite, por lo que debes tenerla instalada:
sudo aptitude install sqlite3
SQLite posee comando específicos para gestionar fechas y realizar operaciones con ellas. Entonces, la forma más sencilla de comparar dos fechas desde la terminal, es enviado una consulta a sqlite3 sin abrirlo, ¿cómo? así de simple:
echo "select (julianday('2012-12-21') - julianday('now');" | sqlite3
El sencillo siguiente script te dará de ejecutar la opción de ingresar dos fechas y regresará la diferencia de días y meses entre ellas. Pueden ver y descargar el script:



Luego crea un alias conveniente con el siguiente comando, considerando que lo guardas bajo  ~/Scripts/compara-fechas.sh:
sudo -s
echo "alias compara-fechas='sh ~/Scripts/compara-fechas.sh'" >> ~/.bash_aliases
exit

exit

Finalmente para ejecutarlo escribe en la terminal "compara-fechas" e ingresa los valores solicitados.

No hay comentarios.:

Publicar un comentario