tutorial script lenguaje espaƱol ejemplos comandos bash shell scripting

bash - lenguaje - shell script linux



Fecha de formato YYYY-MM-DD en script de shell (10)

Cada vez que tengo una tarea como esta termino volviendo a

$ man strftime

Para recordarme todas las posibilidades.

Intenté usar $(date) en mi script de shell bash, sin embargo quiero la fecha en formato AAAA-MM-DD. ¿Cómo consigo esto?


Con Bash reciente (versión ≥ 4.2), puede usar el printf integrado con el modificador de formato %(strftime_format)T :

$ printf ''%(%Y-%m-%d)T/n'' -1 # Get YYYY-MM-DD (-1 stands for "current time") 2017-11-10 $ printf ''%(%F)T/n'' -1 # Synonym of the above 2017-11-10 $ printf -v date ''%(%F)T'' -1 # Capture as var $date


En Bash:

obtener año-mes-día a partir de la date

DATE=`date +%Y-%m-%d`

obtener año-mes-día hora: minuto: segundo a partir de la date

DATE=`date ''+%Y-%m-%d %H:%M:%S''`

Otros formatos de fecha disponibles se pueden ver desde las páginas de manual de fecha :

man date


Está buscando el formato de fecha estándar ISO 8601 , así que si tiene la fecha de GNU (o cualquier comando de fecha más moderno que 1988), simplemente haga lo siguiente: $(date -I)


Prueba: $(date +%F)


Puedes hacer algo como esto:

$ date +''%Y-%m-%d''


Si desea el año en un formato de dos números, como 17 en lugar de 2017, haga lo siguiente:

DATE=`date +%d-%m-%y`


#!/bin/bash -e x=''2018-01-18 10:00:00'' a=$(date -d "$x") b=$(date -d "$a 10 min" "+%Y-%m-%d %H:%M:%S") c=$(date -d "$b 10 min" "+%Y-%m-%d %H:%M:%S") #date -d "$a 30 min" "+%Y-%m-%d %H:%M:%S" echo Entered Date is $x echo Second Date is $b echo Third Date is $c

Aquí x es la fecha de muestra utilizada y luego el ejemplo muestra tanto el formato de los datos como la obtención de fechas 10 minutos más que la fecha actual.


$(date +%F_%H-%M-%S)

se puede utilizar para eliminar dos puntos (:) entre

salida

2018-06-20_09-55-58


date -d ''1 hour ago'' ''+%Y-%m-%d''

La salida sería 2015-06-14 .