나는 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
예를 들어 "retryCountResetTime"만 grep하려는 경우 다음을 실행하려고 합니다.
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
tail -1을 추가하여 처음 3줄(SASL)을 제거하고 싶지만 작동하지 않습니다.
1-3번 줄을 어떻게 제거할 수 있나요?
답변1
아마도 처음 3줄은 표준 출력 스트림으로 전혀 이동하지 않고 표준 오류 스트림으로 이동할까요?
STDERR 채널을 다른 채널로 리디렉션할 수 있는지 확인하려면장소2>/dev/null
, 예를 들어 명령 끝에 다음을 추가하여 null 장치를 생성합니다 .
command -options arguments 2>/dev/null | grep 'something'
이를 처리하려면 다음을 추가하여 STDOUT으로 리디렉션할 수 있습니다 2>&1
.
command -options arguments 2>&1 | grep 'something'
STDOUT과 함께 STDERR을 파일로 리디렉션하려는 경우 구문은 다음과 같습니다.
command -options arguments >/path/to/some.log 2>&1