Obtener la hora en una variable AWK...

blux Mensajes publicados 2060 Fecha de registro   Estado Moderador Última intervención   -  
blux Mensajes publicados 2060 Fecha de registro   Estado Moderador Última intervención   -
Hola, ¿alguien sabe cómo obtener la hora actual y, más generalmente, cualquier resultado de un comando externo dentro de un script AWK para asignarlo a una variable? En caso afirmativo, por favor aclárenmelo. -- A+ Blux "Los tontos se atreven a todo. Es incluso así como se les reconoce"

2 respuestas

  1. jipicy Mensajes publicados 40842 Fecha de registro   Estado Moderador Última intervención   4 898
     
    Hola,
    [jp@Mandrake tmpfs]$ echo "Il est très exactement " | awk -v valeur="$(date '+%H:%M:%S')" ' { print $0 valeur } ' Il est très exactement 22:04:33 [jp@Mandrake tmpfs]$
    ;-))
    --
    Z'@+...che.
    JP : Zen, my Nuggets ! ;-) Le savoir n'est bon que s'il est partagé. 
    1
    1. blux Mensajes publicados 2060 Fecha de registro   Estado Moderador Última intervención   3 455
       
      Sí, habría preferido no tenerlo en la invocación sino en el transcurso del procedimiento...

      Finalmente, voy a cambiar de bando:

      a2p...

      --
      A+ Blux
       "Los tontos se atreven a todo. Es incluso eso en lo que se les reconoce"
      0
  2. jisisv Mensajes publicados 3678 Estado Moderador 936
     
    Lee el manual de awk
    Buscar "Time Functions" y "systime"

    ejemplo:

    johand@horus:~$ awk '{ print strftime("%Y/%m/%d-%H:%M:%S",systime()) } '
    1
    2005/12/09-15:50:27
    2
    2005/12/09-15:50:28
    3
    2005/12/09-15:50:30

    En cuanto a los comandos externos, no los he profundizado, pero existe un comando system (se puede obtener el código de salida del comando).
    No he visto rastro de popen. Pero quizá varíe con las versiones de awk...

    Johan
    --
    Gates te dio Windows.
    GNU nos dio toda la casa. (Alexandrino)
    0
    1. blux Mensajes publicados 2060 Fecha de registro   Estado Moderador Última intervención   3 455
       
      Gracias por tu respuesta, pero mi awk (AIX 5.2, no lo había especificado) no conoce ni systime ni strftime...

      Y para el comando system, efectivamente solo obtenemos el código de retorno (pensarías que ya lo había probado)...

      Pensaba más bien en algo con una indirección, tipo toto=`system(date)` o toto=$(system(date))
      como en shell... pero no funciona :-(

      --
      A+ Blux
       "Los idiotas se atreven a todo. Es incluso por eso que se les reconoce"
      0