sed -e '$! d' não funciona como esperado?

10

Quando eu corro:

sudo /usr/local/nginx/sbin/nginx -t

Eu volto:

nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

Eu só quero a última linha, então eu corro:

sudo /usr/local/nginx/sbin/nginx -t | sed -e '$!d'

Mas eu recebo o mesmo que sem sed.

    
por Philip Kirkbride 23.08.2017 / 22:17

1 resposta

13

Seu comando possivelmente gera stderr ao invés de stdout. Para redirecionar o stderr para o stdout:

sudo /usr/local/nginx/sbin/nginx -t 2>&1 | sed -e '$!d'

Se você quiser apenas a última linha de sua saída, você também pode usar tail -n 1 em vez de sed .

    
por 23.08.2017 / 22:20