Solución:
Si está usando gawk, no necesita el externo date
que puede ser costoso llamar repetidamente:
awk '
BEGIN{
m=split("Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec",d,"|")
for(o=1;o<=m;o++){
months[d[o]]=sprintf("%02d",o)
}
format = "%m/%d/%Y %H:%M"
}
{
split($4,time,":")
date = (strftime("%Y") " " months[$2] " " $3 " " time[1] " " time[2] " 0")
print strftime(format, mktime(date))
}'
Gracias a ghostdog74 para la matriz de meses de esta respuesta.
puedes probar esto. Suponiendo que solo la fecha que especificó está en el archivo
awk '
{
cmd ="date "+%m/%d/%Y %H:%M" -d ""$1" "$2" "$3" "$4"""
cmd | getline var
print var
close(cmd)
}' file
producción
$ ./shell.sh
01/02/2010 18:23
y si no está usando herramientas GNU, como si está en Solaris, por ejemplo, use nawk
nawk 'BEGIN{
m=split("Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec",d,"|")
for(o=1;o<=m;o++){
months[d[o]]=sprintf("%02d",o)
}
cmd="date +%Y"
cmd|getline yr
close(cmd)
}
{
day=$3
mth=months[$2]
print mth"https://foroayuda.es/"day"https://foroayuda.es/"yr" "$4
} ' file
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)