Як я можу знайти свою версію awk?


12

Якщо я хочу знати версію awk, я отримую наступне:

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

Перевірившись, man awkя бачу, що моє диво

mawk - сканування візерунків та мова обробки тексту


- перетворення - це те, що GNU винайшов для власних команд, це не частина POSIX і більшість команд не підтримує --version. Однак GNU awk робить, а awk --version робить щось розумне в моїй системі. У дистрибуції fedorqui за замовчуванням використовується щось інше, ніж GNU awk.
wingedsubmariner

@wingedsubmariner - це цікава інформація, яку ви дали. Дякую! Моє диво - mawkотже, відсутність version.
fedorqui

Відповіді:


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

3

Я намагаюся бути більш загальним.

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)
jarno
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.