sed -e „$! d” nie działa zgodnie z oczekiwaniami?

10

Kiedy biegnę:

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

Wracam:

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

Chcę tylko ostatnią linię, więc biegnę:

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

Ale wracam tak samo jak bez sed.

Philip Kirkbride
źródło

Odpowiedzi:

13

Twoje polecenie prawdopodobnie wypisuje na stderr zamiast stdout. Aby przekierować stderr na standardowe wyjście:

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

Jeśli chcesz tylko ostatniego wiersza wyników, możesz także użyć tail -n 1zamiast sed.

sebasth
źródło
tak, to było to
Philip Kirkbride