Como criar uma lista de endereços de e-mail do resultado ldapsearch para processamento posterior?

1

Para uma correspondência automática e para notificar o usuário, os respectivos membros de um grupo específico, estou procurando comandos ou uma única linha de comando que forneça uma lista de endereços de e-mail e que possa ser usada posteriormente.

Atualmente, posso procurar o diretório de uma forma como:

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 

Isso me dá os endereços de e-mail de todos os membros do grupo condensados, mas não no formato para processamento adicional que eu estava procurando.

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

Como obter os resultados em uma linha, ou seja, vírgula ou ponto-e-vírgula separados?

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

Substituindo as novas linhas por vírgulas usando tr ou sed não estava funcionando (para mim).

    
por U880D 13.07.2018 / 11:22

1 resposta

2

Depois de algumas pesquisas, encontrei o paste command . Então adicionando

| paste -sd ";"

fez funcionar da maneira que eu estava procurando. A linha de comando final que estou usando agora é

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 ";" 
    
por 13.07.2018 / 11:24