Estou usando o openldap e normalmente usarei o comando ldapsearch uid=<ldap> +
para verificar determinados atributos e, ao executar esse comando, ele produzirá uma saída completa, por exemplo:
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
Se, por exemplo, eu quiser usar apenas "retryCountResetTime", tento executar:
ldapsearch uid=<ldap> + | grep ^retryCountResetTime
Mas a saída será:
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
retryCountResetTime: 20220826111616Z
Gostaria de remover as 3 primeiras linhas (SASL) adicionando tail -1, mas não funciona.
Alguma sugestão de como posso remover a linha 1-3?
Responder1
Como@steeldrivermencionado dentro docomentários:
Talvez as três primeiras linhas não estejam indo para o fluxo de saída padrão, mas para o fluxo de erro padrão?
Para verificar se você pode redirecionar o canal STDERR para algum outrolugar, por exemplo, o dispositivo nulo adicionando 2>/dev/null
no final do comando:
command -options arguments 2>/dev/null | grep 'something'
Se quiser processá-lo, você pode redirecioná-lo para STDOUT adicionando 2>&1
:
command -options arguments 2>&1 | grep 'something'
Observe que se você deseja redirecionar STDERR junto com STDOUT para um arquivo, a sintaxe é:
command -options arguments >/path/to/some.log 2>&1