The UNIX and Linux Forums  


Go Back   O UNIX e Linux Forum > Top Fóruns > Programação Shell Script e
.
google unix.com



Programação Shell Script e Post perguntas sobre ksh, CSH, SH, BASH, Perl, PHP, SED, Awk e outros scripts shell e shell scripts línguas aqui.

Mais UNIX e Linux Fórum Tópicos Você pode achar Helpfull
Fio Thread Starter Fórum Respostas Última postagem
analisar uma string em um shell script asutoshch Programação Shell Script e 19 05-26-2008 10:18
shell script analisar com o sed jjamd64 UNIX para Dummies Perguntas & Respostas 5 12-11-2007 04:51
Analisando uma linha em Shell Script unishiva Programação Shell Script e 3 11-01-2007 04:30
Ajuda em analisar um arquivo CSV com a Shell script mihirk Programação Shell Script e 10 06-24-2007 11:58
Parsing um arquivo em Shell Script sendhilmani123 Programação Shell Script e 4 11-30-2006 02:29

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
Linkback Thread Tools Pesquisar este Thread Rate Thread Display Modes
  #1 (permalink)  
Old 02-08-2007
gurpreet470 gurpreet470 is offline
Usuário
  
 

Join Date: Feb 2007
Posts: 4
Shell script para analisar o ficheiro de 300MB ..

sou relativamente novo para Shell scripting.
Tenho escrito um roteiro para analisar um arquivo grande. A lógica é a seguinte:
Para além de muitas outras inúteis animais, existem muitas ocorrências de <abc> ea correspondente </ abc> tags. (Todos eles estão devidamente fechadas)
Minha obrigação é encontrar uma etiqueta especial (digamos <data> 1234 </ data>) fechado em qualquer lugar entre <abc> </ abc> tags.
Se encontrado, eu tenho que seguir a linha 4. Armazenar <abc> tag em um arquivo temporário.

Um típico arquivo de log é algo parecido com:

************************
<pqr>
......
alguns dados
alguns outros dados
.........
</ PQR>
algum texto de dados
...........
<abc>
blá
blá
.....
<iD> 12345 </ id>
blah ...
......
<data> 1234 </ data>
</ abc>
........
.....
.....

<abc>
blá
blá
.....
<iD> 12345 </ id>
blah ...
...
</ abc>
..........
<rst>
...
...
</ rst>
algum texto de dados ...

****************************

Saída do script deve ser <iD> 12345 </ id> armazenados em algum arquivo temporário.

A script que estou usando é:

********************

rm-f temp.log
filename \u003d $ 1
OK \u003d 0

enquanto lê linha1
fazer


if [ "$ line1" \u003d "<abc>"]; então
OK \u003d 1
fi

if [ "$ OK"-eq 1]; então
echo $ linha1>> temp_file
fi

if [ "$ line1" \u003d "</ abc>"], então
OK \u003d 0
fi

if [ "$ OK"-eq 0]; então

if [-f temp_file]; então

enquanto lê line2

fazer

if [ "$ linha2" \u003d "<data> 1234 </ data>"], então

gato temp_file | awk '(if (NR \u003d\u003d 4) (print ($ 0)))'>> temp.log

fi

feito <temp_file

rm temp_file

fi

fi

feito <$ filename.log

*******************************

O <abc> </ abc> tags entrar na última parte geral (nem sempre), após algo em torno de 500.000 linhas ... e, normalmente, o ficheiro tem cerca de 700.000 linhas.

O script é executado, e continua a correr, e eu achar 2 registos que estão nas primeiras linhas armazenadas no arquivo temporário. Mas depois de alguns minutos 6-7, script termina abruptamente, dizendo:
scriptname.sh teste: argumento esperado.

Alguém pode me ajudar nisto?
  #2 (permalink)  
Old 02-08-2007
radoulov's Avatar
radoulov radoulov is offline Forum Staff  
viciado
  
 

Join Date: Jan 2007
Localização: Варна, България / Milano, Italia
Mensagens: 2.926
*GNU Awk * solução:


Código:
awk '/data>1234/{print $5}' RS="<abc>" FS="\n" infile

  #3 (permalink)  
Old 02-09-2007
gurpreet470 gurpreet470 is offline
Usuário
  
 

Join Date: Feb 2007
Posts: 4
Script não funciona ..

Citação:
Originally Posted by radoulov
*GNU Awk * solução:


Código:
awk '/data>1234/{print $5}' RS="<abc>" FS="\n" infile
Estou realmente impressionado com o awk poder ..
Depois de ler a sua resposta, ler alguns artigos sobre o awk.
De alguma forma, o script não está ainda a trabalhar, e que termina dizendo ..
**********************
awk: registro `/ resposta>
00:27 :...' sex. demasiado longo
número recorde 22
**********************
Tenho grandes esperanças em você agora

Obrigado
  #4 (permalink)  
Old 02-09-2007
radoulov's Avatar
radoulov radoulov is offline Forum Staff  
viciado
  
 

Join Date: Jan 2007
Localização: Варна, България / Milano, Italia
Mensagens: 2.926
Tente fazer os registos mais curtos. Você disse que o <abc> </ abc> tags entrar na última parte de cerca de 500.000 linhas tão após o primeiro registro é muito longo . Você pode torná-lo mais curto, incluindo outras tags / cordas (que você tem na beginig do arquivo), no RS: por exemplo, RS \u003d "<abc> | <other_tag>". Ou, se preferir, você pode me enviar uma cópia do seu arquivo zipado privado, assim que eu poderia tentar dar uma
BTW, qual é o seu Awk versão?
Closed Thread

Marcadores

Thread Tools Pesquisar este Thread
Pesquisar este Thread:

Pesquisa Avançada
Display Modes Esta taxa Thread
Esta taxa Thread:

Destacamento Regimento
Você não pode postar novas threads
Você não pode postar respostas
Você não pode postar anexos
Você não pode editar suas postagens

BB code é Ligado
Smilies são Ligado
[IMG] código é Ligado
Código HTML é Desligado
Trackbacks são Ligado
Pingbacks são Ligado
Refbacks são Ligado




Todos os horários são GMT -4. A hora é agora 06:32.


Powered by: vBulletinCopyright © 2000 - 2006, Jelsoft Enterprises Limited. Língua Traduções Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
O UNIX e Linux Fóruns Content Copyright © 1993-2009. Todos os Direitos Reserved.Ad Gestão por RedTyger

Content Relevant URLs por vBSEO 3.2.0