--version ist etwas, das die GNU für ihre eigenen Befehle erfunden hat. Es ist nicht Teil von POSIX und die meisten Befehle unterstützen --version nicht. GNU awk macht es jedoch und awk --version macht etwas Sinnvolles auf meinem System. Die Distribution von fedorqui verwendet standardmäßig etwas anderes als GNU awk.
Wingedsubmariner
@wingedsubmariner das ist eine interessante Information, die Sie gegeben haben. Vielen Dank! Mein awk ist mawk, daher die Nichtexistenz von version.
Fedorqui
Antworten:
14
In diesem Fall man awkzeigt uns:
-W Version
mawk schreibt seine Version und sein Copyright in stdout und kompiliert Grenzen für stderr und beendet 0.
In meinem Fall,
$ awk -W version
mawk 1.3.3 Nov 1996, Copyright (C) Michael D. Brennan
compiled limits:
max NF 32767
sprintf buffer 2040
funktioniert unabhängig davon, ob awk mawk, gawk oder original-awk aufruft, das für Debian / Ubuntu Linux verfügbar ist. Beachten Sie, dass -Wund versionverkettet werden müssen, damit original-awk nicht denkt, dass versiones sich um ein Programm handelt. In Ubuntu Linux können Sie sudo update-alternatives --config awkdie Implementierung anzeigen und auswählen, die vom Befehl awk aufgerufen wird.
Ich weiß nicht, wie Standard es ist, die verkettete Option zu akzeptieren, aber es ist meiner Erfahrung nach nicht notwendig, sie zu verwenden: awk -W version </dev/null 2>/dev/null|awk '{print $0;nz=1}END{if(!nz)exit 1}' || awk --versionoder alternativ(s=$(awk -W version </dev/null 2>/dev/null); if [ -n "$s" ]; then printf "$s\n"; else awk --version; fi)
mawk
, daher die Nichtexistenz vonversion
.Antworten:
In diesem Fall
man awk
zeigt uns:In meinem Fall,
quelle
Ich versuche allgemeiner zu sein.
awk -Wversion 2>/dev/null || awk --version
funktioniert unabhängig davon, ob awk mawk, gawk oder original-awk aufruft, das für Debian / Ubuntu Linux verfügbar ist. Beachten Sie, dass
-W
undversion
verkettet werden müssen, damit original-awk nicht denkt, dassversion
es sich um ein Programm handelt. In Ubuntu Linux können Siesudo update-alternatives --config awk
die Implementierung anzeigen und auswählen, die vom Befehl awk aufgerufen wird.quelle
awk -W version </dev/null 2>/dev/null|awk '{print $0;nz=1}END{if(!nz)exit 1}' || awk --version
oder alternativ(s=$(awk -W version </dev/null 2>/dev/null); if [ -n "$s" ]; then printf "$s\n"; else awk --version; fi)