Estoy tratando de obtener solo los argumentos de configuración de nginx compilado en Ubuntu 14.04 usando una línea de comando.
Ejecutando /usr/local/nginx/sbin/nginx -V
nos da:
nginx version: nginx/1.8.1
built by gcc 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04.1)
built with OpenSSL 1.0.1f 6 Jan 2014
TLS SNI support enabled
configure arguments: --with-http_ssl_module --with-http_stub_status_module --add-module=/usr/local/src/nginx-goodies-nginx-sticky-module-ng-c78b7dd79d0d --with-http_sub_module
Lo cual tiene sentido.
Así que ahora quiero cortar esta línea para tener solo:
–con-http_ssl_module –con-http_stub_status_module –add-module=/usr/local/src/nginx-goodies-nginx-sticky-module-ng-c78b7dd79d0d –con-http_sub_module
Después de buscar en línea, parece que
/usr/local/nginx/sbin/nginx -V | sed -n -e '/arguments/ s/.*\: *//p'
o
/usr/local/nginx/sbin/nginx -V | awk -F":" '{print $NF}'
o
/usr/local/nginx/sbin/nginx -V | egrep -o '\\-\\-'
Pero todos generan lo mismo que nginx -V
¿Qué estoy entendiendo mal?
Respuesta aceptada:
Hay :
se usa en cada línea, por lo que puede tratar la línea como varias partes separadas por :
, y en su caso desea un segundo campo donde configure arguments
aparece la cadena:
/usr/local/nginx/sbin/nginx -V 2>&1 | awk -F ':' '/configure arguments/{print $2}'
Como se mencionó en los comentarios debajo de la pregunta, la salida de -V
va a la secuencia de errores, por lo que tuvimos que hacer que vaya a stdout
stream (que es lo que 2>&1
lo hace)