Как выполнить grep определенного атрибута из openldap?

Как выполнить grep определенного атрибута из openldap?

Я использую openldap и обычно использую команду ldapsearch uid=<ldap> +для проверки определенного атрибута. При запуске такой команды будет выведен полный вывод, например:

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

Если, например, я хочу выполнить grep только для «retryCountResetTime», я пробую выполнить:

ldapsearch uid=<ldap> + | grep ^retryCountResetTime

Но вывод будет таким:

SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
retryCountResetTime: 20220826111616Z

Я хотел бы удалить первые 3 строки (SASL), добавив tail -1, но это не работает.

Есть ли у вас предложения, как удалить строку 1-3?

решение1

Как@steeldriverупомянуто вКомментарии:

Возможно, первые три строки вообще не направляются в стандартный поток вывода, а направляются в стандартный поток ошибок?

Чтобы убедиться, что вы можете перенаправить канал STDERR на какой-то другойместо, например, нулевое устройство, добавив 2>/dev/nullв конец команды:

command -options arguments 2>/dev/null | grep 'something'

Если вы хотите обработать его, вы можете перенаправить его в STDOUT, добавив 2>&1:

command -options arguments 2>&1 | grep 'something'

Обратите внимание, если вы хотите перенаправить STDERR вместе со STDOUT в файл, синтаксис будет следующим:

command -options arguments >/path/to/some.log 2>&1

Связанный контент