[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]
- Re: Expressões regulares usando SED, (continued)
- Re: [shell-script] Expressões regulares usando SED, miranda, 2007/11/01
- Re: [shell-script] Expressões regulares usando SED, Gentil de Bortoli Jr, 2007/11/01
- Re: [shell-script] Expressões regulares usando SED, Fabiano Caixeta Duarte, 2007/11/01
- Re: Expressões regulares usando SED, miguelcm86, 2007/11/02
- Re: [shell-script] Re: Expressões regulares usando SED,
Tiago Barcellos Peczenyj <=
- Re: Expressões regulares usando SED, miguelcm86, 2007/11/02
- Re: [shell-script] Re: Expressões regulares usando SED, Tiago Barcellos Peczenyj, 2007/11/02
- Re: [shell-script] Re: Expressões regulares usando SED, Fabiano Caixeta Duarte, 2007/11/05
- Re: Expressões regulares usando SED, miguelcm86, 2007/11/05
- Re: Expressões regulares usando SED (novo problema), miguelcm86, 2007/11/05
- Re: [shell-script] Re: Expressões regulares usando SED, Fabiano Caixeta Duarte, 2007/11/05