sed -e '$! d' não está funcionando como esperado?

10

Quando eu corro:

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

Eu voltei:

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 volto da mesma forma que sem sed.

Philip Kirkbride
fonte

Respostas:

13

Seu comando possivelmente gera para stderr em vez de stdout. Para redirecionar stderr para stdout:

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

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

sebasth
fonte
sim, era isso #
Philip Kirkbride