자동 메일 전송 및 사용자, 특정 그룹의 개별 구성원에게 알리기 위해 이메일 주소 목록을 제공하고 추가로 사용할 수 있는 명령 또는 단일 명령줄을 찾고 있습니다.
현재 다음을 통해 디렉토리를 찾을 수 있습니다.
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 ";"