Comment trouver ma version awk?


12

Si je veux connaître la version d'awk, j'obtiens ce qui suit:

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

Arrivée man awkje vois que mon awk est

mawk - langage de numérisation de modèles et de traitement de texte


--version est quelque chose que GNU a inventé pour ses propres commandes, il ne fait pas partie de POSIX et la plupart des commandes ne prennent pas en charge --version. GNU awk le fait cependant, et awk --version fait quelque chose de sensible sur mon système. La distribution de fedorqui utilise autre chose que GNU awk par défaut.
wingedsubmariner

@wingedsubmariner c'est une information intéressante que vous avez donnée. Merci! Mon awk est mawk, d'où l'inexistence de version.
fedorqui

Réponses:


14

Dans ce cas, man awknous montre:

-Version W

mawk écrit sa version et son copyright sur stdout et compile les limites de stderr et quitte 0.

Dans mon cas,

$ awk -W version
mawk 1.3.3 Nov 1996, Copyright (C) Michael D. Brennan

compiled limits:
max NF             32767
sprintf buffer      2040

3

J'essaie d'être plus général.

awk -Wversion 2>/dev/null || awk --version

fonctionne que awk invoque mawk, gawk ou original-awk disponible pour Debian / Ubuntu Linux. Notez cela -Wet versiondevez être concaténé pour que original-awk ne pense pas être versionun programme. Dans Ubuntu Linux, vous pouvez utiliser sudo update-alternatives --config awkpour voir et choisir l'implémentation invoquée par la commande awk.


Je ne sais pas à quel point il est standard d'accepter l'option concaténée, mais il n'est pas nécessaire de l'utiliser dans mon expérience: awk -W version </dev/null 2>/dev/null|awk '{print $0;nz=1}END{if(!nz)exit 1}' || awk --versionou alternativement(s=$(awk -W version </dev/null 2>/dev/null); if [ -n "$s" ]; then printf "$s\n"; else awk --version; fi)
jarno
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.