The UNIX and Linux Forums  


Go Back   Die UNIX-und Linux-Foren > Top Foren > Shell Programmierung und Scripting
.
Google unix.com



Shell Programmierung und Scripting Post Fragen zu ksh, csh, sh, bash, Perl, PHP, sed, awk und anderen Shell-Skripte und Shell-Scripting-Sprachen hier.

Mehr UNIX-und Linux-Forum Themen Vielleicht finden Sie hilfreiche
Faden Thread Starter Forum Antworten Last Post
Parsen einer Zeichenkette in ein Shell-Skript asutoshch Shell Programmierung und Scripting 19 05-26-2008 10:18 PM
Shell-Skript Parsing mit sed jjamd64 UNIX for Dummies Questions & Answers 5 12-11-2007 04:51 PM
Parsing eine Zeile in der Shell-Script unishiva Shell Programmierung und Scripting 3 11-01-2007 04:30 PM
Hilfe bei der Analyse eine CSV-Datei mit Shell-Skript mihirk Shell Programmierung und Scripting 10 06-24-2007 11:58 AM
Parsen einer Datei im Shell Script sendhilmani123 Shell Programmierung und Scripting 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 Suche diesen Thread Rate Thread Anzeige-Modi
  #1 (permalink)  
Old 02-08-2007
gurpreet470 gurpreet470 is offline
Registrierte Nutzer
  
 

Join Date: Feb 2007
Beiträge: 4
Shell-Skript zum Parsen 300MB Protokolldatei ..

bin relativ neu in Shell-Scripting.
Ich habe ein Skript zum Parsen eine große Datei. Die Logik ist:
Neben vielen anderen mittel nutzlos, es gibt viele Ereignisse der <abc> und die entsprechenden </ abc>-Tags. (Alle von ihnen sind ordnungsgemäß geschlossen)
Meine Pflicht ist es, einen bestimmten Tag (zB <data> 1234 </ data>) umschlossen irgendwo zwischen <abc> </ abc>-Tags.
Wenn sie gefunden wurde, habe ich zu speichern 4. Zeile unterhalb der <abc> Tag in einer temp-Datei.

Ein typisches Log-Datei sieht wie folgt aus:

************************
<pqr>
......
einige Daten
einige andere Daten
.........
</ PQR>
Text Daten
...........
<abc>
blah
blah
.....
<id> 12345 </ id>
blah ...
......
<data> 1234 </ data>
</ abc>
........
.....
.....

<abc>
blah
blah
.....
<id> 12345 </ id>
blah ...
...
</ abc>
..........
<rst>
...
...
</ RST>
Text Daten ...

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

Ausgabe des Skripts sollte <id> 12345 </ id> in einige temporäre Datei.

Das Skript Ich benutze ist:

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

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

while read line1
tun


if [ "$ line1" \u003d "<abc>"], dann
OK \u003d 1
fi

if [ "$ OK"-eq 1]; dann
echo $ line1>> temp_file
fi

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

if [ "$ OK"-eq 0]; dann

if [-f temp_file], dann

while read line2

tun

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

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

fi

done <temp_file

rm temp_file

fi

fi

done <$ filename.log

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

Die <abc> </ abc>-Tags sind in den letzten Teil der Regel (nicht immer), nach rund 500.000 Zeilen ... und in der Regel, Datei hat rund 700000 Zeilen.

Das Skript läuft, und läuft, und ich finde 2 Datensätze, die in den ersten Zeilen in der Temp-Datei. Aber nach einiger 6-7 Minuten, Skript endet abrupt, sagen,
scriptname.sh Test: Argument erwartet.

Kann jemand mir helfen, auf das?
  #2 (permalink)  
Old 02-08-2007
radoulov's Avatar
radoulov radoulov is offline Forum Staff  
addict
  
 

Join Date: Jan 2007
Lage: Варна, България / Milano, Italia
Posts: 2926
*GNU Awk * Lösung:


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

  #3 (permalink)  
Old 02-09-2007
gurpreet470 gurpreet470 is offline
Registrierte Nutzer
  
 

Join Date: Feb 2007
Beiträge: 4
Script funktioniert nicht ..

Zitat:
Zitat von radoulov
*GNU Awk * Lösung:


Code:
awk '/data>1234/{print $5}' RS="<abc>" FS="\n" infile
Ich bin wirklich beeindruckt von der Leistung awk ..
Nach der Lektüre Ihrer Antwort, lesen Sie ein paar Artikel über awk.
Irgendwie, das Skript ist immer noch nicht funktioniert, und endet sagen ..
**********************
awk: Record "/ Response>
Freitag 00.27 :...' zu lang
Eintrag Nummer 22
**********************
Ich habe große Hoffnungen auf Sie jetzt

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

Join Date: Jan 2007
Lage: Варна, България / Milano, Italia
Posts: 2926
Versuchen Sie, die Sätze kürzer. Sie haben gesagt, dass die <abc> </ abc>-Tags sind in den letzten Teil nach rund 500.000 Linie, so dass die erste Platte ist wirklich lange . Sie können es auch andere kürzere Tags / Strings (dh Sie haben an der beginig der Datei) in der RS: zB RS \u003d "<abc> | <other_tag>". Oder, wenn Sie es vorziehen, können Sie mir eine gezippte Kopie der Datei in Privatbesitz, so könnte ich einen Versuch
Übrigens, was ist Ihr Awk Version?
Closed Thread

Lesezeichen

Thread Tools Suche diesen Thread
Suche diesen Thread:

Erweiterte Suche
Anzeige-Modi Rate this thread
Rate this thread:

Forumregeln
Du möglicherweise nicht neue Themen
Du möglicherweise nicht nach Antworten
Du möglicherweise nicht post-Anlagen
Du möglicherweise nicht bearbeiten Sie Ihre Beiträge

BB-Code ist Auf
Smilies sind Auf
[IMG] Code Auf
HTML-Code ist Aus
Trackbacks sind Auf
Pingbacks sind Auf
Refbacks sind Auf




Alle Zeiten sind GMT -4. Es ist jetzt 11:39 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Ltd. Sprachliche Übersetzungen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Die UNIX-und Linux-Foren Content © Copyright 1993-2009. Alle Rechte Reserved.Ad Management von RedTyger

Content Relevant URLs durch vBSEO 3.2.0