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: Alfredo Casanova
Subject: Re: [shell-script] Dúvida com SED
Date: Thu, 6 Dec 2012 19:50:03 -0200

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]



reply via email to

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