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 18:31:40 -0300

dê um echo nessa variavel

echo "valor da variavel eh $read"

geralmente esse erro acontece quando a variavel está vazia. tente fazer algo
como

[[ $read -lt 1 ]]  # invoca o test interno do bash

ou

[ "$read" -lt 1 ]

abraços

On 11/2/07, miguelcm86 <address@hidden> wrote:
>
>   Olá
> estou a manipular o valor desta forma
> read=$(sed -n '/State=/{s///;p}' relatorio)
>
> só que quando faço:
> [ $read -lt 1 ] && teste && read=1
> dá-me este erro:
> line 13: [: -lt: operador unário esperado
>
> Eu gostaria de que ele verifica-se o read se era menor que 1 e caso
> isso acontece-se teria de entrar na função teste e por o read a 1.
>
> Obrigado e abraços ;)
>
>
> >
> > 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 <miguelcm86@...> 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>
> <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]
> >
>
>  
>



-- 
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]