Ich verwende OpenLDAP und verwende normalerweise Befehle, ldapsearch uid=<ldap> +
um bestimmte Attribute zu prüfen. Durch Ausführen eines solchen Befehls wird beispielsweise eine vollständige Ausgabe erzeugt:
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
lastLoginTime: 20220829012233Z
passwordRetryCount: 0
retryCountResetTime: 20220826111616Z
passwordExpWarned: 0
passwordExpirationTime: 20220905092802Z
pwdUpdateTime: 20220707092802Z
modifyTimestamp: 20220707092802Z
Wenn ich beispielsweise nur „retryCountResetTime“ greppen möchte, versuche ich Folgendes auszuführen:
ldapsearch uid=<ldap> + | grep ^retryCountResetTime
Die Ausgabe wird jedoch sein:
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
retryCountResetTime: 20220826111616Z
Ich möchte die ersten drei Zeilen (SASL) durch Hinzufügen von tail -1 entfernen, aber das funktioniert nicht.
Irgendwelche Vorschläge, wie ich die Zeilen 1-3 entfernen kann?
Antwort1
Als@Stahlfahrererwähnt in derKommentare:
Vielleicht gehen die ersten drei Zeilen überhaupt nicht an den Standardausgabestrom, sondern an den Standardfehlerstrom?
Um zu überprüfen, ob Sie den STDERR-Kanal auf einen anderen Kanal umleiten können,Ort, zum Beispiel das Nullgerät, indem Sie 2>/dev/null
am Ende des Befehls hinzufügen:
command -options arguments 2>/dev/null | grep 'something'
Wenn Sie es verarbeiten möchten, können Sie es durch Hinzufügen von: zu STDOUT umleiten 2>&1
.
command -options arguments 2>&1 | grep 'something'
Beachten Sie, wenn Sie STDERR zusammen mit STDOUT in eine Datei umleiten möchten, lautet die Syntax:
command -options arguments >/path/to/some.log 2>&1