Question

"awk: la fonction système n'est pas définie" & <; p>

mais systime est une commande intégrée

Était-ce utile?

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" " <*> } '
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top