Wie finde ich meine awk-Version?

12

Wenn ich die Version von awk wissen möchte, erhalte ich Folgendes:

$ awk --version
awk: not an option: --version

Beim Einchecken man awksehe ich, dass mein awk ist

mawk - Muster-Scan- und Textverarbeitungssprache

fedorqui
quelle
--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
fedorqui
quelle
3

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 -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.

jarno
quelle
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)
jarno