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

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

Re: Capturando somente a palavra especifica no sed!


From: voyeg3r
Subject: Re: Capturando somente a palavra especifica no sed!
Date: Tue, 14 Oct 2008 19:24:28 -0000
User-agent: eGroups-EW/0.82

--- Em address@hidden, jimmy <ronaldo_tgz@...> escreveu
>
> On Tue, Oct 14, 2008 at 10:49:05AM -0700, Rafa Pongai wrote:
> > Pessoal,
> > 
> > Estou com um problema que é o seguinte.
> > Tenho um arquivo .h que contem um enum que eu gostaria de pegar
todas as opções deste enum, mas somente as opções!
> > Todas as linhas tme o padrão, que começa com WCLK_CITY_
> > 
> > Como saida gostaria de obter :
> > 
> > HONOLULU
> > ANCHORAGE
> > VANCOVER
> > etc
> > 
> > Só que tenho q fazer isto com o sed!!
> > 
> > 
> > Grato!!
> > POnga
> > 
> > 
> > Arquivo.h
> > 
> > .
Minha sugestão

sed -i 's/\(WCLK_CITY_\)\([^,=]*\).*/\2/g'

estamos usando grupos de expressões regulares:

os grupos tem que ser escapados

  grupo 1   (WCLK_CITY_) ..... escapado \(WCLK_CITY_\)
  grupo 2   ([^,=]*) ......... escapado \([^,=]*\)
  restante  .*

O grupo 2 corresponde a ao que queremos por isso chamamos em \2





> > .
> > .
> > typedef enum
> > {
> >     WCLK_CITY_BASE = 0,
> >     WCLK_CITY_HONOLULU = WCLK_CITY_BASE,
> >     WCLK_CITY_ANCHORAGE,
> >     WCLK_CITY_VANCOUVER,
> >     WCLK_CITY_SEATTLE,
> >  .
> >  .
> >  .
> > }E_WCLK_CITY_ORDER;
> > ------------------------------------
> 
> pode ser deletando as linhas que não importam e extraindo o padrão:
> 
>   $ sed '/^[ \t]\+WCLK_CITY_/!d;s/[ \t]\+\([A-Za-z_]\+\).*/\1/'
arquivo.h
>




reply via email to

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