![]() |
|
|
Google unix.com
|
|||||||
| Foren | Registrieren | Forum-Regeln | Links | Alben | FAQ | Benutzerliste | Kalender | Suche | Die heutige Beiträge | Alle Foren als gelesen markieren |
| 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 |
![]() |
|
|
LinkBack | Thread Tools | Suche diesen Thread | Rate Thread | Anzeige-Modi |
|
|
|
||||
|
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? |
|
||||
|
Script funktioniert nicht ..
Zitat:
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 |
![]() |
| Lesezeichen |
| Thread Tools | Suche diesen Thread |
| Anzeige-Modi | Rate this thread |
|
|