--version - это то, что GNU изобрела для своих собственных команд, оно не является частью POSIX, и большинство команд не поддерживают --version. Однако GNU awk делает, а awk --version делает что-то разумное в моей системе. Дистрибутив fedorqui по умолчанию использует что-то отличное от GNU awk.
wingedsubmariner
@wingedsubmariner это интересная информация, которую вы дали. Спасибо! Мой awk mawk, следовательно, отсутствие version.
Федорки
Ответы:
14
В этом случае man awkпоказывает нам:
-W версия
mawk записывает свою версию и авторские права в stdout и компилирует ограничения в stderr и выходит из 0.
В моем случае,
$ awk -W version
mawk 1.3.3 Nov 1996, Copyright (C) Michael D. Brennan
compiled limits:
max NF 32767
sprintf buffer 2040
работает независимо от того, вызывает ли awk mawk, gawk или original-awk, доступные для Debian / Ubuntu Linux. Обратите внимание, что -Wи versionдолжны быть объединены, чтобы оригинал-awk не считал versionпрограмму. В Ubuntu Linux вы можете использовать sudo update-alternatives --config awkдля просмотра и выбора реализации, которая вызывается командой awk.
Я не знаю, насколько стандартно принимать конкатенированный вариант, но нет необходимости использовать его в моем опыте: awk -W version </dev/null 2>/dev/null|awk '{print $0;nz=1}END{if(!nz)exit 1}' || awk --versionили в качестве альтернативы(s=$(awk -W version </dev/null 2>/dev/null); if [ -n "$s" ]; then printf "$s\n"; else awk --version; fi)
mawk
, следовательно, отсутствиеversion
.Ответы:
В этом случае
man awk
показывает нам:В моем случае,
источник
Я стараюсь быть более общим.
awk -Wversion 2>/dev/null || awk --version
работает независимо от того, вызывает ли awk mawk, gawk или original-awk, доступные для Debian / Ubuntu Linux. Обратите внимание, что
-W
иversion
должны быть объединены, чтобы оригинал-awk не считалversion
программу. В Ubuntu Linux вы можете использоватьsudo update-alternatives --config awk
для просмотра и выбора реализации, которая вызывается командой awk.источник
awk -W version </dev/null 2>/dev/null|awk '{print $0;nz=1}END{if(!nz)exit 1}' || awk --version
или в качестве альтернативы(s=$(awk -W version </dev/null 2>/dev/null); if [ -n "$s" ]; then printf "$s\n"; else awk --version; fi)