¿Cómo puedo encontrar mi versión awk?


12

Si quiero saber la versión de awk obtengo lo siguiente:

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

Al registrarme man awkveo que mi awk es

mawk - lenguaje de escaneo de patrones y procesamiento de texto


--version es algo que GNU inventó para sus propios comandos, no es parte de POSIX y la mayoría de los comandos no admiten --version. Sin embargo, GNU awk sí lo hace, y awk --version hace algo sensato en mi sistema. La distribución de fedorqui usa algo diferente a GNU awk por defecto.
wingedsubmariner

@wingedsubmariner es una información interesante que usted dio. ¡Gracias! Mi awk es mawk, de ahí la inexistencia de version.
fedorqui

Respuestas:


14

En este caso, man awknos muestra:

-W versión

mawk escribe su versión y derechos de autor en stdout y compila los límites en stderr y sale de 0.

En mi caso,

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

compiled limits:
max NF             32767
sprintf buffer      2040

3

Intento ser más general.

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

funciona si awk invoca mawk, gawk o original-awk disponible para Debian / Ubuntu Linux. Tenga en cuenta que -Wy versiontiene que ser concatenado para que original-awk no piense que versiones un programa. En Ubuntu Linux puede usar sudo update-alternatives --config awkpara ver y elegir la implementación que invoca el comando awk.


No sé qué tan estándar es aceptar la opción concatenada, pero no es necesario usarla en mi experiencia: awk -W version </dev/null 2>/dev/null|awk '{print $0;nz=1}END{if(!nz)exit 1}' || awk --versiono alternativamente(s=$(awk -W version </dev/null 2>/dev/null); if [ -n "$s" ]; then printf "$s\n"; else awk --version; fi)
2015
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.