shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Re: SED - replace de certas palavras em um arquivo


From: Julio C. Neves
Subject: Re: [shell-script] Re: SED - replace de certas palavras em um arquivo
Date: Wed, 16 Sep 2015 10:40:41 -0300

Agora deu para entender!
Isso deve resolver:
$ sed -n '/cn=users,dc=sicredi,dc=com,dc=br/ s/cn=users/cn=c,cn=p,cn=i,cn=users/p' <<< "member: uid=ednei_rodrigues,cn=e,cn=users,dc=sicredi,dc=com,dc=br
member: uid=pedro_matos,cn=central_pr,cn=users,dc=sicredi,dc=com,dc=br"
member: uid=ednei_rodrigues,cn=e,cn=c,cn=p,cn=i,cn=users,dc=sicredi,dc=com,dc=br
member: uid=pedro_matos,cn=central_pr,cn=c,cn=p,cn=i,cn=users,dc=sicredi,dc=com,dc=br


Abcs,
Julio
@juliobash

P
róximos cursos de Shell
Cidade         Local Período
São Paulo 4Linux 21/09 a 25/09
São Paulo 4Linux 07/12 a 11/12
Dou treinamento de Shell em qualquer cidade.
Para mais detalhes, me mande um e-mail.

Se vc ainda usa Windows e não gosta de malwares, baixe o
LibreOffice somente em https://pt-br.libreoffice.org/


Em 16 de setembro de 2015 10:04, Édnei Rodrigues address@hidden [shell-script] <address@hidden> escreveu:
 

Oi, não, mas vou explicar de outra forma como sugestão do outro colega.

Dentro de um arquivo, eu terei a estrutura:

member: uid=ednei_rodrigues,cn=e,cn=users,dc=sicredi,dc=com,dc=br
member: uid=pedro_matos,cn=central_pr,cn=users,dc=sicredi,dc=com,dc=br

Quero trocar para:

member: uid=ednei_rodrigues,cn=e,cn=c,cn=p,cn=i,cn=users,dc=sicredi,dc=com,dc=br
member: uid=pedro_matos,cn=p,cn=c,cn=p,cn=i,cn=users,dc=sicredi,dc=com,dc=br

Lembrando que neste arquivo eu terei outras informações parecidas:

...
dn: ou=nordeste-rs,cn=cooperativa,cn=entities,dc=sicredi,dc=com,dc=br
sicreditipoestruturaorganizacional: PRPO
sicrediname: Sicredi Nordeste RS
sicrediapelido: Sicredi Nordeste RS
member: ou=itati,cn=ua,cn=entities,dc=sicredi,dc=com,dc=br
member: ou=nova_hartz,cn=ua,cn=entities,dc=sicredi,dc=com,dc=br
member: ou=osorio,cn=ua,cn=entities,dc=sicredi,dc=com,dc=br
member: ou=palmares_sul,cn=ua,cn=entities,dc=sicredi,dc=com,dc=br
member: ou=parobe,cn=ua,cn=entities,dc=sicredi,dc=com,dc=br
member: ou=riozinho,cn=ua,cn=entities,dc=sicredi,dc=com,dc=br

...

Logo, os únicos que podem receber essa transformação são aquelas linhas que possuem cn=users,dc=sicredi,dc=com,dc=br.

Obrigado.

Em 16/09/2015 09:56, "address@hidden [shell-script]" <address@hidden> escreveu:
 

É para remover o início 'uid=xxxx,' ?

 

Em 16/09/2015 08:22, Édnei Rodrigues address@hidden [shell-script] escreveu:

 

 

Leslie, eu tentei o teu jeito, mas eu tenho outro problema. Se tu prestares atenção naquele uid, há um cn=LETRA INICIAL DO NOME, ou seja, este cn precisa ser mantido. Logo, é um pouco mais complicado.

Obrigado.

Em 15/09/2015 16:25, "Édnei Rodrigues" <address@hidden> escreveu:

Obrigado pelo retorno e desculpe se eu não fui claro.

Tentarei explicar. Dentro de um arquivo do tipo ldif, eu terei o seguinte:

uid=altair_goncalves,cn=central_ms,cn=users,dc=sicredi,dc=com,dc=br
...
Ou=Manaus,cn=central_ms,cn=users,dc=sicredi,dc=com,dc=br
...
Ou=Coritiba,cn=central_pr,cn=users,dc=sicredi,dc=com,dc=br
...
uid=izabel_teixeira,cn=i,cn=users,dc=sicredi,dc=com,dc=br
uid=sergio_aparecido,cn=s,cn=users,dc=sicredi,dc=com,dc=br
uid=alex_ferreira,cn=a,cn=users,dc=sicredi,dc=com,dc=br

Este é um exemplo.

Nesse arquivo, eu tenho que trocar o cn=users,dc=sicredi,dc=com,dc=br por cn=c,cn=p,cn=i,cn=users,dc=sicredi,dc=com,dc=br.

Contudo, eu me deparei que há usuários com cn a mais, como o Altair, e precisão ter este removido. Assim, eu queria adaptar meu SED para essa remoção.

Perceba que dentro deste arquivo terá vários tipos de combinações e o que me interessa são os que iniciam com uid.

Obrigado!

Em 15/09/2015 16:09, "Leslie Watter address@hidden [shell-script]" <address@hidden> escreveu:
 

 

Oi Édnei,
 
Não entendi direito o que vc precisa, mas veja se a saida abaixo te ajuda:
 
 
 
$ echo "uid=altair_goncalves,cn=central_ms,cn=users,dc=sicredi,dc=com,dc=br" | sed 's/cn=.*br//'
uid=altair_goncalves,
 
 
$ echo "uid=altair_goncalves,cn=central_ms,cn=users,dc=sicredi,dc=com,dc=br" | sed 's/cn=.*dc=br//'
uid=altair_goncalves,
 
 
$ echo "uid=altair_goncalves,cn=central_ms,cn=users,dc=sicredi,dc=com,dc=br" | sed 's/cn=.*dc//'
uid=altair_goncalves,=br
 
 
$ echo "uid=altair_goncalves,cn=central_ms,cn=users,dc=sicredi,dc=com,dc=br" | sed 's/cn=.*dc=br//'
uid=altair_goncalves,
 
 
$ echo "uid=altair_goncalves,cn=central_ms,cn=users,dc=sicredi,dc=com,dc=br" | sed 's/cn=.*dc=br/TROQUEME/; s/TROQUEME/ cn=c,cn=p,cn=i,cn=users,dc=sicredi,dc=com,dc=br/'
uid=altair_goncalves, cn=c,cn=p,cn=i,cn=users,dc=sicredi,dc=com,dc=br
 
 
Acredito que o que vc queira é trocar todo o CN, ou talvez endereçar melhor o que precisa ....
 
 
Att,
 
LEslie
 
 

2015-09-15 14:44 GMT-03:00 Édnei Rodrigues address@hidden [shell-script] <address@hidden>:
 

Pessoal, Boa tarde.

Poderiam ajudar nessa dúvida?

Obrigado!

Obs.: tive que reencaminhar o email abaixo para meu particular, por isso,
está em formato de encaminhado.
Em 15/09/2015 14:35, "Ednei Felipe Faleiro Rodrigues" <
address@hidden> escreveu:

> Boa tarde pessoal, tudo bem ?
>
> Seguinte, estava escrevendo um script para substituir o seguinte padrão:
> (dentro do ${grupos}.ldif )
>
> uid=izabel_teixeira,cn=i,cn=users,dc=sicredi,dc=com,dc=br
> uid=sergio_aparecido,cn=s,cn=users,dc=sicredi,dc=com,dc=br
> uid=alex_ferreira,cn=a,*cn=users,dc=sicredi,dc=com,dc=br*
>
>
> Estava feliz com o sed abaixo:
>
> sed -i 's/*cn=users,dc=sicredi,dc=com,dc=br*/cn=c,cn=p,cn=i,cn=users,dc=sicredi,dc=com,dc=br/g'
> ${grupos}.ldif
>
>
> Porém, me deparei com essa situação abaixo:
>
>
> uid=alex_ferreira,cn=campo_grande,*cn=users,dc=sicredi,dc=com,dc=br*
> uid=altair_goncalves,cn=central_ms,cn=users,dc=sicredi,dc=com,dc=br
>
> Há vários usuários com essa estrutura anômala e preciso que todos os
> usuários passem para o padrão também:
>
> UID=USERNAME,CN=Letra_Inicial,
> cn=c,cn=p,cn=i,cn=users,dc=sicredi,dc=com,dc=br
>
>
> Como posso adaptar meu SED ou com outro SED essas exceções, removendo
> aquele termo em azul ?
>
>
> Obrigado pela ajuda!!!
>
>
>
> --
> Atenciosamente,
>
>
> *Édnei Rodrigues*
>
> Analista de Infraestrutura - Gestão de Identidades
> Confederação Sicredi
> www.sicredi.com.br
> <https://outlook.sicredi.net.br/owa/redir.aspx?C=8cEvgLixeEq55upfN9Y5vVeI7I0Ny9EIEcRLy-bpH1Iyv-WH8bRibq78Ojle7wmnvWh45IRlQIQ.&URL="">>
>
>
> ------------------------------
> Esta mensagem é somente para uso do destinatário informado e pode conter
> informações privilegiadas, proprietárias, ou privadas. Se você recebeu esta
> mensagem por engano, por favor notifique o remetente imediatamente e apague
> a original. Qualquer uso deste email é proibido.
> This message is for the designated recipient only and may contain
> privileged, proprietary, or otherwise private information. If you have
> received it in error, please notify the sender immediately and delete the
> original. Any other use of the email by you is prohibited.
>

[As partes desta mensagem que não continham texto foram removidas]

 


 
--
Leslie H. Watter
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]