추가 처리를 위해 ldapsearch 결과에서 이메일 주소 목록을 만드는 방법은 무엇입니까?

추가 처리를 위해 ldapsearch 결과에서 이메일 주소 목록을 만드는 방법은 무엇입니까?

자동 메일 전송 및 사용자, 특정 그룹의 개별 구성원에게 알리기 위해 이메일 주소 목록을 제공하고 추가로 사용할 수 있는 명령 또는 단일 명령줄을 찾고 있습니다.

현재 다음을 통해 디렉토리를 찾을 수 있습니다.

ldapsearch -h dc.example.com -p 389 -D "EXAMPLE\admin" -x -w "password" -b "DC=example,DC=com" -s sub "(&(objectCategory=person)(objectClass=user)(sAMAccountName=*)(memberOf=CN=Developers,OU=Role_Groups,OU=Groups,DC=example,DC=com))" mail \
| grep "mail:" \
| cut -d " " -f 2 

이렇게 하면 모든 그룹 구성원의 압축된 이메일 주소가 제공되지만 추가 처리를 위해 제가 찾고 있는 형식은 아닙니다.

[email protected]
[email protected]
[email protected]
...

쉼표 또는 세미콜론으로 구분된 결과 행을 얻는 방법은 무엇입니까?

[email protected];[email protected];[email protected];...

개행 문자를 바꾸려면 쉼표를 사용하세요.tr아니면 sed(나에게는) 작동하지 않습니다.

답변1

약간의 조사 끝에 나는 알아냈다.paste주문하다. 그래서 추가

| paste -sd ";"

내가 원하는 방식으로 작동하도록 하세요. 지금 내가 사용한 마지막 명령줄은 다음과 같습니다.

ldapsearch -h dc.example.com -p 389 -D "EXAMPLE\admin" -x -w "password" -b "DC=example,DC=com" -s sub "(&(objectCategory=person)(objectClass=user)(sAMAccountName=*)(memberOf=CN=Developers,OU=Role_Groups,OU=Groups,DC=example,DC=com))" mail \
| grep "mail:" \
| cut -d " " -f 2 \
| paste -sd ";" 

관련 정보