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

blux Messages postés 27827 Statut Modérateur -  
blux Messages postés 27827 Statut Modérateur -
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.

2 réponses

jipicy Messages postés 41342 Statut Modérateur 4 896
 
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
blux Messages postés 27827 Statut Modérateur 3 363
 
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...
0
jisisv Messages postés 3678 Statut Modérateur 934
 
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
0
blux Messages postés 27827 Statut Modérateur 3 363
 
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ô :-(
0