awk gibt die folgenden Fehler
Frage
"awk. Function systime nicht definiert ist"
aber systime wird in Befehl ein eingebauter
Lösung
Unter Solaris /usr/bin/awk
standardmäßig ist ein Link zu /usr/bin/oawk
, die systime
als Einbau in (oder vielen anderen Erweiterungen über die 7. Auflage AWK) nicht erkennt. Entweder /usr/bin/awk
relink /usr/bin/nawk
oder benutzen nawk
direkt oder erhalten GNU Awk (gawk
) installiert und verwendet werden.
Andere Unix-Systeme wie HP-UX, AIX können ähnliche Probleme haben. MacOS X (und durch Folgerung, BSD) installieren Sie ein nicht-GNU, nicht-erweiterte Version von awk
(Dank für die Korrektur, Dmckee). Linux nicht; es nutzt GNU Awk als Haupt / nur awk
. Natürlich kann GNU Awk leicht auf jedem dieser Systeme installiert werden.
Andere Tipps
Es scheint eine Frage der awk "Geschmack" zu sein.
GAWK (Gnu awk) umfasst systime (), aber vielleicht die Version, die Sie verwenden, nicht ...
Es sei denn, sind SysTime Anrufe gemeint Spur Zeitdifferenzen innerhalb des awk-Skript zu halten selbst, ein Trick, den Mangel an awk systime zu umgehen () Funktion wäre, den Wert dieser Systemvariable als eine Variable auf der awk Befehlszeile übergeben .
Als Beispiel auf meinem System sowohl gawk
und mawk
installiert sind.
echo |mawk '{print systime()}'
erzeugt:
mawk: line 2: function systime never defined
, während
echo |gawk '{print systime()}'
erzeugt:
1252953754
Hier ist, was ich tat, den Zeitstempel bekommen
nawk '{system("date +%Y-%m-%d %H:%M:%S|tr -d \"\n\"");print" " $0 } '