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

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

Re: [shell-script] Leitura de Arquivo


From: jimmy
Subject: Re: [shell-script] Leitura de Arquivo
Date: Thu, 16 Oct 2008 10:21:29 -0300
User-agent: Mutt/1.4.2.3i

se o seu interesse é que ao encontrar determina linha seja interrompida
a leitura, você pode usar algo do tipo:

while read linha; do
  if [ "$linha" == "$VAR" ]; then
    break
  fi
  echo $linha
done < arq1.txt

lembrando o conteúdo da variável $VAR precisa ser exatamente igual a linha.

On Thu, Oct 16, 2008 at 09:30:32AM -0300, Karin Klayton Schiochet wrote:
> Senhores,
> 
> Eu fiz um teste conforme repassaram nas dicas de de verta forma deu
> certo;
> 
> Vai exemplo:
> =========================================
> arq1.txt
> ITEM CAMPO_1 CAMPO_2 CAMPO_3
> 01 qwerty aqwer qweryt
> 02 qwerty1 qwerr qerttyd
> 03 qwerty3 qewrtr qetroip
> 04 qwerty4 qetrt qçlkwteç
> 
> FIM DO ARQUIVO
> 
> ITEM CAMPO_1 CAMPO_2 CAMPO_3
> 01 qwerty aqwer qweryt
> 02 qwerty1 qwerr qerttyd
> 03 qwerty3 qewrtr qetroip
> 04 qwerty4 qetrt qçlkwteç
> =========================================
> 
> Código;
>   1 #!/bin/bash
>   2 #
>   3 VAR="FIM DO ARQUIVO"
>   4 VAR2="Station MAC, First time seen, Last time seen, Power, #
> packets, BSSID, Probed ESSIDs"
>   5 VAR3="Station MAC,"
>   6 while read linha;
>   7 do
>   8         if ! [ "$linha" = "$VAR" ]; then
>   9         
>  10         echo $linha
>  11         else
>  12                 exit 1
>  13         fi      
>  14 done < arq.txt 
> 
> Neste exemplo ocorreu corretamente, ele parou na linha em que queria que
> parasse e assim é possível tratar de forma adequada.
> 
> Agora quando coloco outro arquivo que é o que eu estou tentando fazer o
> programa para ele, o mesmo não esta funcionando, ele não para na linha
> correta.
> 
> ============================================================
> BSSID, First time seen, Last time seen, channel, Speed, Privacy, Cipher,
> Authentication, Power, # beacons, # IV, LAN IP, ID-length, ESSID, Key
> 00:02:6F:3A:97:C1, 2008-10-09 19:19:40, 2008-10-09 19:19:43, 11,   5,
> WEP , WEP,   ,   0,        7,        6,   0.  0.  0.  0,   0, , 
> 00:1C:10:54:4C:19, 2008-10-09 19:19:40, 2008-10-09 19:19:43, 11,  54,
> WPA , TKIP,PSK,   0,        3,        0,   0.  0.  0.  0,  14,
> familiaIKETANI, 
> 00:0A:52:00:E8:C9, 2008-10-09 19:19:40, 2008-10-09 19:19:41,  8,  11,
> WEP , WEP,   ,   0,        7,        3,   0.  0.  0.  0,   4, WIND, 
> 00:18:39:60:E0:3B, 2008-10-09 19:19:43, 2008-10-09 19:19:43,  6,  54,
> WPA , CCMP,PSK,   0,        2,        0,   0.  0.  0.  0,   9,
> linksysSM, 
> 
> Station MAC, First time seen, Last time seen, Power, # packets, BSSID,
> Probed ESSIDs
> 00:16:6F:A4:AB:21, 2008-10-09 19:19:40, 2008-10-09 19:19:43,   0,
> 66, (not associated) ,
> 00:0B:6B:4F:7C:8F, 2008-10-09 19:19:42, 2008-10-09 19:19:42,  -1,
> 1, 00:02:6F:3A:97:C1,
> 00:12:0E:59:EB:7E, 2008-10-09 19:19:42, 2008-10-09 19:19:43,  -1,
> 4, 00:02:6F:3A:97:C1,
> 00:02:6F:3A:96:72, 2008-10-09 19:19:43, 2008-10-09 19:19:43,  -1,
> 1, 00:02:6F:3A:97:C1,
> 00:15:AF:8F:5C:36, 2008-10-09 19:19:43, 2008-10-09 19:19:43,   0,
> 7, (not associated) , aberto
> 
> =========================================================
> è o mesmo código modificando a variável para VAR2.
> 
> Puts pior que depois que eu copiei o código para o e-mail ocorreu de
> aparecer estes símbolos no final de cada linha, sera por esse motivo que
> ele não esta funcionando.
> 
> Atenciosamente,
> Karin Klayton 
> 
> Em Qui, 2008-10-16 às 08:04 -0400, Édnei Rodrigues escreveu:
> > É, bem lembrado. Você quer ler o arquivo,
> > 
> > Logo:
> > 
> > Cat arquivo.txt | while read linha do
> > 
> > Pronto, assim ele pega linha por linha, até o final. A variável
> > "linha" é a
> > que guarda a linha do arquivo lida.
> > 
> > 2008/10/16 Humberto Cruz <address@hidden>
> > 
> > > Karin, me parece que o comando read só irá ler a primeira linha do
> > > arquivo. Deve ter outra forma de fazer o que voce quer, se puder
> > > explicar melhor o que deseja...
> > >
> > > []s
> > > Humberto
> > >
> > > 2008/10/16 Édnei Rodrigues
> > <address@hidden<ednei.felipe.rodrigues%40gmail.com>
> > > >:
> > >
> > > > Qual é o erro que aparece? Qual é a saída ?
> > > >
> > > > if ! [ $linha = $VAR ]
> > > >
> > > > Isso não é entre aspas duplas ?
> > > > if ! [ "$linha" = "$VAR" ]
> > > >
> > > > 2008/10/15 Karin Klayton Schiochet
> > <address@hidden<karinklayton%40gmail.com>
> > > >
> > > >
> > > >> Senhores,
> > > >>
> > > >> Fazendo uma rápida apresentação, meu nome é Karin Klayton, sou
> > > >> Administrador de Redes e moro em Belém/Pa. Sou novo no grupo e
> > tenho
> > > >> lido bastante material a respeito de shell-script e já fiz alguns
> > > >> programas bem legal em shell-script.
> > > >>
> > > >> A minha duvida é a seguinte, estou tentando via shell-script ler
> > uma
> > > >> arquivo que é gerado de um programa em execução, e guardar linha
> > a linha
> > > >> para poder tratar os dados.
> > > >>
> > > >> Fiz algumas coisas mais até o momento não tive sucesso.
> > > >> Exemplo: arquivo.txt
> > > >> ITEM CAMPO_1 CAMPO_2 CAMPO_3
> > > >> 01 qwerty aqwer qweryt
> > > >> 02 qwerty1 qwerr qerttyd
> > > >> 03 qwerty3 qewrtr qetroip
> > > >> 04 qwerty4 qetrt qçlkwteç
> > > >>
> > > >> FIM DO ARQUIVO
> > > >>
> > > >> ITEM CAMPO_1 CAMPO_2 CAMPO_3
> > > >> 01 qwerty aqwer qweryt
> > > >> 02 qwerty1 qwerr qerttyd
> > > >> 03 qwerty3 qewrtr qetroip
> > > >> 04 qwerty4 qetrt qçlkwteç
> > > >>
> > > >> O que testei até o momento:
> > > >>
> > > >> VAR="FIM DO ARQUIVO"
> > > >> while read linha;
> > > >> do
> > > >> if ! [ $linha = $VAR ]
> > > >> echo $linha
> > > >> fi
> > > >> done < arquivo.txt
> > > >>
> > > >> Tentei algumas variantes seguindo esta linha do if tentando
> > comparar com
> > > >> a var que será constante mais não consegui.
> > > >>
> > > >> Agradeço qualquer informação mesmo que seja indicando material
> > para
> > > >> estudar.
> > > >>
> > > >> Um grande abraço a todos,
> > > >>
> > > >> --
> > > >> Karin Klayton Schiochet
> > > >> address@hidden <karinklayton%40gmail.com> <karinklayton%
> > > 40gmail.com>
> > > >> Tel: (91) 8121-5809
> > > >>
> > > >>
> > > >>
> > > >
> > > >
> > > >
> > > 
> > >
> > 
> > 
> > 
> > 
> > 
> >  
> -- 
> Karin Klayton Schiochet
> Administrador de Redes
> address@hidden
> Tel: (91) 8121-5809
> 
> 
> ------------------------------------


reply via email to

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