Por ejemplo, quiero mostrar la fecha y hora actuales con el siguiente formato:
yyyymmddhhmmss
¿Cómo puedo hacer eso? Parece que la mayoría formato de fecha viene con -
, /
, :
, etc.
Aqui tienes:
date +%Y%m%d%H%M%S
Como man date
dice cerca de la parte superior, puede usar el date
comando de esta manera:
date [OPTION]... [+FORMAT]
Es decir, puede darle un parámetro de formato, comenzando con un +
. Probablemente puedas adivinar el significado de los símbolos de formato que utilicé:
%Y
es por año%m
es por mes%d
es por diaPuede encontrar este y otros símbolos de formato en man date
.
Un ejemplo sencillo en un script de shell
#!/bin/bash
current_date_time="`date +%Y%m%d%H%M%S`";
echo $current_date_time;
Sin formato de puntuación: - +% Y% m% d% H% M% S
Con puntuación: - +% Y-% m-% d% H:% M:% S
"`date +%Y-%m-%d %H:%M:%S`"
me da undate: illegal time format
Si está usando Bash, también puede usar uno de los siguientes comandos:
Puede usar la opción
-v varname
para almacenar el resultado en$varname
lugar de imprimirlo en la salida estándar:Si bien el comando de fecha siempre se ejecutará en una subcapa (es decir, en un proceso separado), printf es un comando incorporado y, por lo tanto, será más rápido.
fuente
%
opciones que puede pasar, esto parece estar usando eldate
comando. Entonces,man date
le dará las opciones disponibles.Sin puntuación (como ha mencionado @Burusothman):
O / P:
Con puntuación :
O / P:
fuente
Forma interesante / divertida de hacer esto usando la expansión de parámetros (requiere
bash 4.4
o más reciente):fuente