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

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

Re: [shell-script] pegar um trecho


From: Jeferson Santos
Subject: Re: [shell-script] pegar um trecho
Date: Thu, 3 Dec 2009 00:47:42 -0200

Opa, desculpe o sumiço...
Caramba, quanta ideia interessante... realmente preciso de uma explicação
sobre essa sacada genial ai com o eval... pq realmente fiquei boiando... mas
vai ser muito edificante aprender mais uma tecnica.



Aproveitando, analisei esse bloco <sed '/Model=/s/Model=\([^,]*\).*$/\1/'> e
não sabia que dava pra trabalhar delimitadores dessa forma como na lista.
Isso vai ser uma mão na roda fantastica pra mim.
Só não entendi o seguinte. eu testando, coloquei um 0 no lugar da virgula,
ou seja, <sed '/Model=/s/Model=\([^0]*\).*$/\1/'> e ate onde me lembro, o *
é guloso, sendo assim ele não deveria casar com "Samsung 0411N,
Serial=000000" ao inves de "Samsung " ?


Abraços,
Jeferson


2009/12/2 Julio C. Neves <address@hidden>

> Pô Fabiano,
> essa foi demais!!! Grande sacada!!! Quem te disse que não é elegante?
> Elegantíssimo...
>
> Achei a sacada do eval fantástica. Se vc não se incomodar, vou botar este
> exemplo no meu livro.
>
> Se não fosse o uso do eval, poderia assegurar que esta solução é bem mais
> rápida que a que fiz usando sed, mas assim mesmo ainda acho que deve ser
> mais veloz. Será que o dono do arquivo pode testar isso e postar na lista?
>
> Fabiano aproveite e explique para o pessoal da lista a tua solução pq muita
> gente não deve ter entendido.
>
> Abraços,
> Julio
> Cursos de Shell e Zenity em 2 fins de semana?
> - Em SP ligue (11) 2125-4747 Curso de 07 a 11/12;
> - Em DF ligue (61) 3223-3000 Curso de zenity 09-10/01;
> - No RJ ligue (21) 2561-0867 Curso nos dias 5,6,12,13/12;
> - Turmas fechadas em outras cidades ligue (21) 8112-9988.
>
>
> 2009/12/1 Fabiano Caixeta Duarte <address@hidden>
>
> >
> >
> > 2009/12/1 Jeferson Santos <address@hidden
> <jefersondossantos%40gmail.com>
> > >:
> > > Olá Lista,
> > > Tenho uma linha que é mais ou menos assim:
> > >
> > > Model=Samsung 0411N, Serial=00000005464, blablabla=asdadqddq
> > >
> > > Acontece que eu quero pegar apenas o modelo exato, que seria "Samsung
> > > 0411N".
> > > Atualmente eu faço sed 's/Model=//;s/,.*$//'
> > > Mas sei que com sed tem como eu ser mais elegante que isso e pegar o
> que
> > > fica entre Model= e a virgula, mas sem pegar elas.
> > >
> > > Podem me ajudar?
> > >
> > > Abraços
> > >
> > >
> > >
> > > --
> > > Abraços,
> > > Jeferson Santos
> > >
> > >
> > > [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
> <shell-script-unsubscribe%40yahoogrupos.com.br>
> > > ----------------------------------------------------------
> > > 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
> > >
> > >
> > >
> >
> > Não é elegante, mas é bash-only ;)
> >
> > linha=$(<arquivo); linha=${linha// /_};eval ${linha%%,*}; echo
> ${Model//_/
> > }
> >
> > Se não houvesse espaços, ficaria mais simples:
> > linha=$(<arquivo); eval ${linha%%,*}; echo $Model
> >
> > --
> > Fabiano Caixeta Duarte
> > Especialista em Redes de Computadores
> > Linux User #195299
> > Ribeirão Preto - SP
> >
> >
>
>
> [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
>
>
>


-- 
Abraços,
Jeferson Santos


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



reply via email to

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