--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
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)
mawk
, d'où l'inexistence deversion
.Réponses:
Dans ce cas,
man awk
nous montre:Dans mon cas,
la source
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
-W
etversion
devez être concaténé pour que original-awk ne pense pas êtreversion
un programme. Dans Ubuntu Linux, vous pouvez utilisersudo update-alternatives --config awk
pour voir et choisir l'implémentation invoquée par la commande awk.la source
awk -W version </dev/null 2>/dev/null|awk '{print $0;nz=1}END{if(!nz)exit 1}' || awk --version
ou alternativement(s=$(awk -W version </dev/null 2>/dev/null); if [ -n "$s" ]; then printf "$s\n"; else awk --version; fi)