sed -e '$! d' funktioniert nicht wie erwartet?

10

Wenn ich renne:

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

Ich komme zurück:

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

Ich möchte nur die letzte Zeile, damit ich laufe:

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

Aber ich komme genauso zurück wie ohne sed.

Philip Kirkbride
quelle

Antworten:

13

Ihr Befehl wird möglicherweise an stderr anstatt an stdout ausgegeben. So leiten Sie stderr zu stdout um:

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

Wenn Sie nur die letzte Zeile Ihrer Ausgabe möchten, können Sie auch tail -n 1anstelle von verwenden sed.

sebasth
quelle
Ja, das war es
Philip Kirkbride