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

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

Re: [shell-script] Re: Expressões regulares usando SED


From: Tiago Barcellos Peczenyj
Subject: Re: [shell-script] Re: Expressões regulares usando SED
Date: Fri, 2 Nov 2007 11:26:06 -0300

Miguel, os raciocínios são varios até vc conseguir o que quer.

Quando vc apresentou o arquivo com esta linha:
State=24

Genericamente vc procura por algo do tipo

Nome=Valor

Ou seja, tudo o que está antes do = é o nome da variavel, e depois é o valor
da mesma.

Uma forma, exata, de fazer isso é determinar a posição do caracter = nessa
palavra. Se fr na posição 6, por exemplo, eu sei que os 6-1 caracteres dessa
linha é o nome da minha variavel e, da posição 7 em diante, é o seu
conteúdo.

Porém isso é um processo chato. Se eu tenho isso:

Nome=Valor

e quero isso:

Valor

Não basta remover o a primeira parte dessa linha ? Se sim, o sed é
fantastico pra isso

sed 's/Nome=//'

E se eu estivesse pensando em algo do tipo

Informação[delimitador]outra informação

Isso é tarefa pro awk

awk -F '=' '{ print $2 }' # ou seja, o segundo campo separado por '='

Enfim, depende da forma como vc vê o problema. Se é apenas manipular uma
parte de um texto ou extrair uma determinada informação.

On 11/2/07, miguelcm86 <address@hidden> wrote:
>
>   Boas pessoal
>
> Isto é que foi uma chuva de opções e uma demonstração do poder do
> shell script.
>
> Já que estão numa de mostrar maneiras possíveis, era boa onda se
> explicassem o raciocínio que tiveram e os comandos mais complicados
> que usaram, pois algumas soluções como as que estão em baixo, que
> sinceramente não é nada trivial, gera confusão.
>
> Abraços e obrigado a todos.
>
> --- Em address@hidden <shell-script%40yahoogrupos.com.br>,
> Fabiano Caixeta Duarte
> <fcd.listas@...> escreveu
> >
> > Gentil de Bortoli Jr escreveu:
> > > On 11/1/07, miranda <miranda@...> wrote:
> > >> Veja uma outra opção :
> > >>
> > >> [miranda@guitar tmp]$ cat a
> > >> State=15 The Bewlay Brothers Alternate Mix
> > >> [miranda@guitar tmp]$ VAR1=$(grep State= a)
> > >> [miranda@guitar tmp]$ echo $VAR1
> > >> State=15 The Bewlay Brothers Alternate Mix
> > >> [miranda@guitar tmp]$ VAR2=${VAR1#State=}
> > >> [miranda@guitar tmp]$ echo $VAR2
> > >> 15 The Bewlay Brothers Alternate Mix
> > >
> > > OK. Já que estamos demonstrando, vai mais uma, só a título de
> curiosidade:
> > >
> > > [gentil@gentil:~]$ cat a
> > > State=24
> > > [gentil@gentil:~]$ IFS="=" ; set - $(cat a) ; echo $2
> > > 24
> >
> > Já que as expressões regulares ficaram de lado faz tempo nesta thread,
> > vai mais uma solução:
> >
> > eval $(<a); echo $State
> >
> > --
> > Fabiano Caixeta Duarte
> > Especialista em Redes de Computadores
> > Linux User #195299
> > Ribeirão Preto - SP
> >
>
>  
>



-- 
Tiago B Peczenyj
Linux User #405772

http://peczenyj.blogspot.com/
"what does not kill us makes us stronger"


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



reply via email to

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