Fecha y hora en Linux bash [cerrado]

26

Estoy tratando de mostrar una fecha y hora en forma de

07/08/2013 16:52:13

usando el comando en el script bash:

dt=`date '+%d/%m/%Y_%H:%M:%S'`

qué variable se usa para llenar un archivo CSV.

El único carácter aceptado es "_" (guión bajo) o "-" entre la fecha y la hora, la salida es

07/08 / 2013_16: 52: 13

¿Cómo puedo obtener un espacio entre la fecha y la hora? Intenté casi (espero) todo.

Enrique
fuente
55
" " Y "-" son los únicos caracteres aceptados por _who ? ¿Qué le impide reemplazar el "_" con "" en datela cadena de formato?
manatwork
Nada impide la inclusión de "" en el comando, simplemente no aparecen en la salida. Pruebe la fecha + "% b% e" y obtendrá "4 de septiembre" (un espacio) para hoy, no el deseado 2. Lo estoy usando en un script y mi solución es hacer la operación en 3 pasos (I en realidad, combínelos en una línea de código, pero se entiende la idea).
Jim2B
Con el debido respeto, ¿cómo obtuvo esta pregunta 20 votos? ¿Y cómo llegó a la cola de reapertura?
G-Man dice 'reinstalar a Monica' el

Respuestas:

49
#!/bin/bash

dt=$(date '+%d/%m/%Y %H:%M:%S');
echo "$dt"

Supongo que el problema está en 'hacer eco' al csv.

usuario1293137
fuente
3
si necesitas milisegundos, úsalo date '+%F %T.%3N'. si necesitas microsegundos, úsalo date '+%F %T.%6N'. si necesitas nanosegundos, úsalo date '+%F %T.%N'. %Fes para la fecha, da YYYY-MM-DD, puede usar %Den su lugar para obtener MM-DD-YYYY, %Tes para el tiempo HH:MM:SS,.
computingfreak
4

Esto funciona:

#!/bin/bash
dt=`date '+%d/%m/%Y %H:%M:%S'`
echo "$dt"

También es posible usar $(y en )lugar de `y`.

Alejandro
fuente
Olvidé mencionar que sale mal después de aplicar awk / home / pi / SB_tool / sunnybeamtool / bin / sunnybeamtool -l | awk -v tot = $ tot -v dt = $ dt -v day = $ day -v mth = $ mth 'siguiente error 08/08/2013 23:03:03 awk: línea 1: error de sintaxis en o cerca de:
Henry
Se resuelve asignando 2 valores separados dt y tm. awk no acepta 1 variable con 2 valores separados por espacio
Henry