1 votos

Cómo convertir una variable de fecha y hora en awk segundos?

Tengo una variable en la que se almacena la DateTime en awk

test=$(f["DateTime"])
print "Printing Test variable:",test 

Salida:

 Printing Test variable:,"2018-12-18 18:36:55"

Quiero convertir el valor de prueba a los segundos

Podría alguien decirme cómo hacer que en awk

El uso de la función mktime() está dando a -1 como de salida

    print mktime(gensub(/[ :-]/," ","g",test))

Mis datos de Entrada (Archivo CSV)es como a continuación

DateTime,Dealer,Some Value,State,CallEndTime,Some Value,TotalDuration,,..

 "2019-01-07 11:35:42","Car","fab","foo",,"bar","100","boo",..

Tengo el valor de DateTime de este,

1voto

steeldriver Puntos 19092

Si usted tiene GNU awk (gawk) puede utilizar su mktime función - sin embargo, la entrada debe ser un espacio separado datespec del formulario "YYYY MM DD HH MM SS [DST]". Los campos de fecha en la variable están en el orden correcto, pero usted tendrá que reemplazar el delimitadores con espacios:

$ gawk -v test="2018-12-18 18:36:55" 'BEGIN{print mktime(gensub(/[ :-]/," ","g",test))}'
1545176215

Véase, por ejemplo, Funciones de Tiempo en el GNU Awk Guía del Usuario


Si la cadena está entre comillas dobles, usted tendrá que quitar aquellos que así:

$ gawk -v test='"2018-12-18 18:36:55"' 'BEGIN{print mktime(gensub(/[ ":-]/," ","g",test))}'
1545176215

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: