The UNIX and Linux Forums  

Go Back   Les systèmes UNIX et Linux Forums > Top Forums > De programmation et de script Shell
.
google unix.com



De programmation et de script Shell Posez vos questions à propos de KSH, CSH, SH, BASH, PERL, PHP, SED, awk et d'autres scripts shell et les langages de script shell ici.

Plus d'UNIX et Linux Forum Sujets Vous trouverez peut-être utile
Fil Thread Starter Forum Réponses Last Post
Parser une chaîne de caractères dans un shell script asutoshch De programmation et de script Shell 19 05-26-2008 10:18 PM
shell script sed avec l'analyse jjamd64 UNIX pour les nuls Questions et réponses 5 12-11-2007 04:51 PM
Analyse une ligne de script Shell unishiva De programmation et de script Shell 3 11-01-2007 04:30 PM
Aide à l'analyse d'un fichier CSV avec Shell script mihirk De programmation et de script Shell 10 06-24-2007 11:58 AM
Analyse d'un fichier en Shell Script sendhilmani123 De programmation et de script Shell 4 11-30-2006 02:29 AM

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 Recherche sur ce Thread Rate Thread Modes d'affichage
  #1 (permalink)  
Old 02-08-2007
gurpreet470 gurpreet470 is offline
Registered User
  
 

Join Date: Feb 2007
Messages: 4
Shell script pour l'analyse de 300 Mo de fichier journal ..

suis relativement nouveau au Shell scripting.
J'ai écrit un script pour l'analyse un grand fichier. La logique est la suivante:
Outre beaucoup d'autres choses inutiles, il ya de nombreuses occurrences de <abc> et correspondant </ abc> tags. (Tous sont bien fermés)
Mon obligation est de trouver un tag (par exemple <data> 1234 </ data>) joint n'importe où entre <abc> </ abc> tags.
S'il est trouvé, je suis obligé de stocker au-dessous de la 4ème ligne de <abc> tag dans un fichier temporaire.

Un fichier de log typique ressemble à:

************************
<pqr>
......
certaines données
que d'autres données
.........
</ pqr>
certaines données de texte
...........
<abc>
blah
blah
.....
<id> 12345 </ id>
blah ...
......
<data> 1234 </ data>
</ abc>
........
.....
.....

<abc>
blah
blah
.....
<id> 12345 </ id>
blah ...
...
</ abc>
..........
<rst>
...
...
</ premier>
certaines données de texte ...

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

Sortie du script devrait être <id> 12345 </ id> stockées dans certains fichiers temp.

Le script que j'utilise est la suivante:

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

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

tout lire ligne1
faire


if [ "$ ligne1" \u003d "<abc>"], puis
OK \u003d 1
fi

if [ "$ OK"-eq 1], puis
echo $ ligne1>> temp_file
fi

if [ "$ ligne1" \u003d "</ abc>"], puis
OK \u003d 0
fi

if [ "$ OK"-eq 0], puis

if [-f temp_file], puis

tout lire line2

faire

if [ "$ line2" \u003d "<data> 1234 </ data>"], puis

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

fi

done <temp_file

rm temp_file

fi

fi

done <$ filename.log

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

Le <abc> </ abc> tags sont dans la dernière partie en général (pas toujours), quelque part autour de 500.000, après les lignes ... et, en général, un fichier d'environ 700.000 lignes.

Le script s'exécute et continue de fonctionner, et je les trouve 2 enregistrements qui sont dans les premières lignes stockées dans le fichier temporaire. Mais après quelques 6-7 minutes, le script se termine abruptement, en disant:
scriptname.sh test: argument expected.

Est ce que quelqu'un peut m'aider sur ce sujet?
  #2 (permalink)  
Old 02-08-2007
radoulov's Avatar
radoulov radoulov is online now Forum Staff  
addict
  
 

Join Date: Jan 2007
Lieu: Варна, България / Milano, Italia
Posts: 2928
*GNU Awk * solution:


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

  #3 (permalink)  
Old 02-09-2007
gurpreet470 gurpreet470 is offline
Registered User
  
 

Join Date: Feb 2007
Messages: 4
Le script ne fonctionne pas ..

Citation:
Posté par radoulov
*GNU Awk * solution:


Code:
awk '/data>1234/{print $5}' RS="<abc>" FS="\n" infile
Je suis vraiment impressionné par la puissance awk ..
Après la lecture de votre réponse, lire quelques articles sur awk.
Quelque part, le script ne fonctionne toujours pas, et se terminant le dire ..
**********************
awk: record `/ réponse>
Vendredi 00h27 :...' trop long
nombre record 22
**********************
J'ai de grands espoirs sur vous maintenant

Merci
  #4 (permalink)  
Old 02-09-2007
radoulov's Avatar
radoulov radoulov is online now Forum Staff  
addict
  
 

Join Date: Jan 2007
Lieu: Варна, България / Milano, Italia
Posts: 2928
Essayez de faire les dossiers plus courts. Vous avez dit que la <abc> </ abc> tags sont dans la dernière partie autour de 500.000, après la ligne de sorte que le premier enregistrement est vraiment très long . Vous pouvez faire plus court, y compris d'autres balises ou des chaînes (que vous avez à la beginig du fichier) dans la RS: par exemple RS \u003d "<abc> | <other_tag>". Ou, si vous préférez, vous pouvez m'envoyer un zipped copie de votre dossier en privé, afin que je puisse faire un essai
BTW, Awk quelle est votre version?
Closed Thread

Bookmarks

Thread Tools Recherche sur ce Thread
Recherche sur ce Thread:

Recherche avancée
Modes d'affichage Rate this thread
Rate this thread:

Règles de messages
Tu mai pas de nouvelles discussions: nonoui
Tu mai pas envoyer des réponses:
Tu mai pas envoyer des pièces jointes
Tu mai pas modifier vos messages

BB code est Sur
Smilies sont Sur
[IMG] code est Sur
Le code HTML est Hors tension
Trackbacks sont Sur
Pingbacks sont Sur
Refbacks sont Sur




Toutes les heures sont au format GMT -4. Le temps est maintenant 05:18 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traductions Langue Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Les systèmes UNIX et Linux Forums Content Copyright © 1993-2009. Tous droits Reserved.Ad de gestion par RedTyger

Content Relevant URLs par vBSEO 3.2.0