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

blux Messages postés 27881 Date d'inscription   Statut Modérateur Dernière intervention   -  
blux Messages postés 27881 Date d'inscription   Statut Modérateur Dernière intervention   -
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 27881 Date d'inscription   Statut Modérateur Dernière intervention   3 361
 
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 935
 
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 27881 Date d'inscription   Statut Modérateur Dernière intervention   3 361
 
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