Récupérer l'heure dans une variable AWK...

Bonjour,

quelqu'un sait-il comment récupérer l'heure courante, et plus généralement n'importe quel résultat d'une commande externe à l'intérieur d'un script AWK pour l'affecter à une variable ?

Dans l'affirmative, merci de m'éclairer.

--
A+ Blux
 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"

2 réponses

  1. Modérateur
    Lire man awk
    Rechercher "Time Functions" "systime"
    exemple:

    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

    Concernant les commandes externes, je n'ai pas aprofondi, mais il existe une sommande system,( on peut récupérer le code d'erreur de la commande).
    Je n'ai pas vu trace de popen. Mais ceci varie peut-être avec les version de awk...

    Johan
    1. Modérateur
      Merci de ta réponse, mais mon awk à moi (AIX 5.2, je ne l'avais pas précisé) ne connait ni systime, ni strftime...

      Et pour la commande system, on ne récupère effectivement que le code retour (tu penses bien que je l'avais testé)...

      Je pensais plutôt à un truc avec une indirection, genre toto=`system(date)` ou toto=$(system(date))
      comme en shell... mais a marche pô :-(
  2. Modérateur
    Salut,
    [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]$
    ;-))
    1. Modérateur
      Oui, j'aurais préféré ne pas l'avoir à l'invocation mais en cours de procédure...

      Finalement, je vais changer mon fusil d'épaule :

      a2p...