awk donne l'erreur suivante
Question
"awk: la fonction système n'est pas définie" & <; p>
mais systime est une commande intégrée
La solution
Sous Solaris, / usr / bin / awk
est par défaut un lien vers / usr / bin / oawk
, qui ne reconnaît pas systime comme intégré (ou beaucoup d’autres extensions par rapport à la 7ème édition AWK). Reliez
/ usr / bin / awk
à / usr / bin / nawk
, ou utilisez directement nawk
, ou obtenez GNU Awk ( gawk
) installé et utilisez-le.
D'autres systèmes Unix tels que HP-UX, AIX peuvent rencontrer des problèmes similaires. MacOS X (et, par inférence, BSD) installent une version non-GNU, ni étendue de awk
(merci pour la correction, DMcKee). Linux ne le fait pas; il utilise GNU Awk comme principal / seul awk
. Bien entendu, GNU Awk peut facilement être installé sur l’un de ces systèmes.
Autres conseils
semble être une question de "saveur" awk.
GAWK (gnu awk) inclut systime (), mais peut-être que la version que vous utilisez ne ...
À moins que les appels systime ne servent à garder trace des différences de temps dans le script awk lui-même, une astuce pour contourner le manque de fonction awk systime () consiste à transmettre la valeur de cette variable système en tant que variable sur la ligne de commande awk .
Par exemple, sur mon système, gawk
et mawk
sont installés.
echo |mawk '{print systime()}'
produit:
mawk: line 2: function systime never defined
pendant
echo |gawk '{print systime()}'
produit:
1252953754
Voici ce que j'ai fait pour obtenir l'horodatage
nawk '{system("date +%Y-%m-%d %H:%M:%S|tr -d \"\n\"");print" " <*> } '