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

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

Re: [shell-script] Dúvida com SED


From: Jonathan Lessa
Subject: Re: [shell-script] Dúvida com SED
Date: Thu, 6 Dec 2012 19:05:07 -0300

blz!


Em 6 de dezembro de 2012 19:03, Alfredo Casanova <address@hidden>escreveu:

> **
>
>
> Aí sim! Boa
>
> O unico problema é tem varios servidores com numeros no meio, que podem se
> confundir com os numeros que eu quero efetivamente tratar. Então teria que
> colocar \_$id\_
>
> aspas duplas, odeio elas! heeheh
>
>
> 2012/12/6 Jonathan Lessa <address@hidden>
>
> > [jonathan@cedro jonathan]$ [jonathan@cedro jonathan]$ string=TESTE1
> > [jonathan@cedro jonathan]$ id=00006
> > [jonathan@cedro jonathan]$ string=TESTE1
> > [jonathan@cedro jonathan]$ sed "/$id/s,$, $string," codserv
> > h_00006_asdasd TESTE1
> > h_00007_efg
> > h_00009_bcde
> > h_00008_asdr
> > h_00006_xz TESTE1
> > h_00008_yz
> >
> >
> >
> > Em 6 de dezembro de 2012 18:50, Alfredo Casanova <address@hidden
> > >escreveu:
> >
> > > **
>
> > >
> > >
> > > boa solução, jonathan... eu cheguei a pensar em faze-la... mas fiquei
> > > curioso demais no motivo de o sed não estar funcionando!
> > >
> > >
> > > 2012/12/6 Jonathan Lessa <address@hidden>
> > >
> > > > Segue teste:
> > > >
> > > > [jonathan@cedro jonathan]$ cat cdsugs
> > > > 00006 TESTE1
> > > > 00007 TESTE2
> > > > 00008 TESTE3
> > > > 00009 TESTE4
> > > >
> > > > [jonathan@cedro jonathan]$ cat codserv
> > > > h_00006_asdasd
> > > > h_00007_efg
> > > > h_00009_bcde
> > > > h_00008_asdr
> > > > h_00006_xz
> > > > h_00008_yz
> > > >
> > > > [jonathan@cedro jonathan]$ while read linha; do echo $linha $(grep
> > > "$(echo
> > > > $linha | cut -d_ -f2)" cdsugs | cut -d" " -f2); done < codserv
> > > > h_00006_asdasd TESTE1
> > > > h_00007_efg TESTE2
> > > > h_00009_bcde TESTE4
> > > > h_00008_asdr TESTE3
> > > > h_00006_xz TESTE1
> > > > h_00008_yz TESTE3
> > > >
> > > >
> > > >
> > > > Em 6 de dezembro de 2012 18:16, Alfredo Casanova <
> address@hidden
> > > > >escreveu:
> > > >
> > > > > **
> > >
> > > > >
> > > > >
> > > > > Apesar de aberto a outras sugestões que não utilizem o sed :)
> > > > >
> > > > > tenho 2 listas (as listas são gigantescas, fiz versões menores para
> > > > deixar
> > > > > o problema mais claro)
> > > > >
> > > > > $ cat cdsugs
> > > > > 00006 TESTE1
> > > > > 00007 TESTE2
> > > > > 00008 TESTE3
> > > > > 00009 TESTE4
> > > > >
> > > > > $ cat codserv
> > > > > > SERVERXXX tem os seguintes codigos:
> > > > > h_00006_asdasd
> > > > > h_00007_efg
> > > > > h_00009_bcde
> > > > > h_00008_asdr
> > > > > h_00006_xz
> > > > > h_00008_yz
> > > > >
> > > > > preciso usar o código numérico da primeira coluna do arquivo cdsugs
> > > para
> > > > > dar match no que está entre os underscores no arquivo codserv, para
> > > > depois
> > > > > imprimir o que está na segunda coluna no arquivo cdsugs ao final
> das
> > > > linhas
> > > > > correspondentes. Ficou confuso?
> > > > > Em resumo o meu output deve ser esse:
> > > > >
> > > > > > SERVERXXX tem os seguintes codigos:
> > > > > h_00006_asdasd TESTE1
> > > > > h_00007_efg TESTE2
> > > > > h_00009_bcde TESTE4
> > > > > h_00008_asdr TESTE3
> > > > > h_00006_xz TESTE1
> > > > > h_00008_yz TESTE3
> > > > >
> > > > > ficou claro?
> > > > >
> > > > > na teoria o seguinte comando deveria resolver:
> > > > >
> > > > > sed '/.*_00006_.*/s,$, TESTE1,' codserv
> > > > > > SERVERXXX tem os seguintes codigos:
> > > > > h_00006_asdasd TESTE1
> > > > > h_00007_efg
> > > > > h_00009_bcde
> > > > > h_00008_asdr
> > > > > h_00006_xz TESTE1
> > > > > h_00008_yz
> > > > >
> > > > > bastando fazer um "while read line" e jogando as variáveis, certo?
> > > > > errado!
> > > > >
> > > > > $ id=00006
> > > > > $ string=TESTE1
> > > > > $ sed '/.*_$id_.*/s,$, $string,' codserv
> > > > > > SERVERXXX tem os seguintes codigos:
> > > > > h_00006_asdasd
> > > > > h_00007_efg
> > > > > h_00009_bcde
> > > > > h_00008_asdr
> > > > > h_00006_xz
> > > > >
> > > > > simplesmente não funciona.
> > > > > Tentei dar um "eval" antes e também não consegui. Delimitando as
> > > > variáveis
> > > > > com {} também não ajudou.
> > > > >
> > > > > meu script que não funcionou é o seguinte:
> > > > >
> > > > > #!/bin/bash
> > > > > while read line
> > > > > do
> > > > > id=$(echo $line | cut -f1 -d" ")
> > > > > SUP=$(echo $line | cut -f2 -d" ")
> > > > > sed -i '/.*_${id}_.*/s,$, $SUP,' codserv
> > > > > done < cdsugs
> > > > >
> > > > > sei que deve ser algum erro "conceitual", sobre como o bash ou o
> sed
> > > > > interpreta as variáveis... mas não consegui identificar
> > > > >
> > > > > --
> > > > > []'s
> > > > > Alfredo Casanova
> > > > > Linux User #228230
> > > > > msn: address@hidden
> > > > > tel: +55 61 9655 9619
> > > > >
> > > > > [As partes desta mensagem que não continham texto foram removidas]
> > > > >
> > > > >
> > > > >
> > > >
> > > >
> > > >
> > > > --
> > > > Att.:
> > > > Jonathan Lessa
> > >
> > > >
> > > >
> > > > [As partes desta mensagem que não continham texto foram removidas]
> > > >
> > > >
> > > >
> > > > ------------------------------------
> > >
> > > >
> > > > ----------------------------------------------------------
> > > > Esta lista não admite a abordagem de outras liguagens de programação,
> > > como
> > > > perl, C etc. Quem insistir em não seguir esta regra será moderado sem
> > > > prévio aviso.
> > > > ----------------------------------------------------------
> > > > Sair da lista: address@hidden
> > >
> > > > ----------------------------------------------------------
> > > > Esta lista é moderada de acordo com o previsto em
> > > > http://www.listas-discussao.cjb.net
> > > > ----------------------------------------------------------
> > > > Servidor Newsgroup da lista: news.gmane.org
> > > > Grupo: gmane.org.user-groups.programming.shell.brazil
> > > >
> > > > Links do Yahoo! Grupos
> > >
> > > >
> > > >
> > > >
> > >
> > > --
> > > []'s
> > > Alfredo Casanova
> > > Linux User #228230
> > > msn: address@hidden
> > > tel: +55 61 9655 9619
> > >
> > > [As partes desta mensagem que não continham texto foram removidas]
> > >
> > >
> > >
> >
> >
> >
> > --
> > Att.:
> > Jonathan Lessa
> >
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> >
> >
> > ------------------------------------
> >
> > ----------------------------------------------------------
> > Esta lista não admite a abordagem de outras liguagens de programação,
> como
> > perl, C etc. Quem insistir em não seguir esta regra será moderado sem
> > prévio aviso.
> > ----------------------------------------------------------
> > Sair da lista: address@hidden
> > ----------------------------------------------------------
> > Esta lista é moderada de acordo com o previsto em
> > http://www.listas-discussao.cjb.net
> > ----------------------------------------------------------
> > Servidor Newsgroup da lista: news.gmane.org
> > Grupo: gmane.org.user-groups.programming.shell.brazil
> >
> > Links do Yahoo! Grupos
> >
> >
> >
>
> --
> []'s
> Alfredo Casanova
> Linux User #228230
> msn: address@hidden
> tel: +55 61 9655 9619
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>



-- 
Att.:
Jonathan Lessa


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



reply via email to

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