![]() |
|
|
google unix.com
|
|||||||
| Forums | Registrer | Forum Regler | Links | Albums | FAQ | Members List | Kalender | Søgning | Dagens Stillinger | Mark Forums Read |
| Shell Programmering og Scripting Post spørgsmål om ksh, CSH, SH, Bash, Perl, PHP, SED, AWK og ANDRE shell scripts og Shell scriptsprog her. |
Mere UNIX og Linux Forum Emner du måske kan finde Helpful
|
||||
| Tråd | Thread Starter | Forum | Svar | Last Post |
| parsing snor i en shell script | asutoshch | Shell Programmering og Scripting | 19 | 05-26-2008 10:18 PM |
| shell script parsing med sed | jjamd64 | UNIX for dummyer Spørgsmål & svar | 5 | 12-11-2007 04:51 PM |
| Parse en linje i Shell Script | unishiva | Shell Programmering og Scripting | 3 | 11-01-2007 04:30 PM |
| Hjælp i parse en csv-fil med Shell script | mihirk | Shell Programmering og Scripting | 10 | 06-24-2007 11:58 AM |
| Parse en fil i Shell Script | sendhilmani123 | Shell Programmering og Scripting | 4 | 11-30-2006 02:29 AM |
![]() |
|
|
LinkBack | Thread Tools | Søg denne tråd | Rate Thread | Display Modes |
|
|
|
||||
|
Shell script for parsing 300MB logfil ..
er forholdsvis ny Shell scripting.
Jeg har skrevet et manuskript til parsing en stor fil. Logikken er: Bortset fra mange andre unyttige fødevarer, der er mange forekomster af <abc> og tilsvarende </ abc> tags. (Alle af dem er ordentligt lukket) Mit krav er at finde en bestemt tag (siger <data> 1234 </ data>) lukkede sted mellem <abc> </ abc> tags. Hvis der findes, jeg har til at gemme 4:e linje under <abc> tag i en midlertidig fil. En typisk log fil ser således ud: ************************ <pqr> ...... nogle data nogle andre data ......... </ pqr> nogle tekstdata ........... <abc> blah blah ..... <id> 12345 </ id> blah ... ...... <data> 1234 </ data> </ abc> ........ ..... ..... <abc> blah blah ..... <id> 12345 </ id> blah ... ... </ abc> .......... <rst> ... ... </ rst> noget tekst data ... **************************** Output af scriptet skal <id> 12345 </ id> gemt i nogle temp fil. Scriptet jeg bruger er: ******************** rm-f temp.log filename \u003d $ 1 OK \u003d 0 mens læse Line1 gøre if [ "$ Line 1" \u003d "<abc>"]; derefter OK \u003d 1 fi if [ "$ OK"-eq 1]; derefter echo $ line1>> temp_file fi if [ "$ Line 1" \u003d "</ abc>"]; derefter OK \u003d 0 fi if [ "$ OK"-eq 0]; derefter if [-f temp_file]; derefter mens læse line2 gøre if [ "$ line2" \u003d "<data> 1234 </ data>"]; derefter kat temp_file | awk '(if (NR \u003d\u003d 4) (print ($ 0)))'>> temp.log fi Done <temp_file rm temp_file fi fi gjort <$ filename.log ******************************* Den <abc> </ abc> tags kommer i den sidste del generelt (ikke altid), et sted omkring efter 500.000 linjer ... og normalt, filen er omkring 700.000 linjer. Scriptet kører, og holder løbende, og jeg kan finde 2 poster, som er i den indledende linjer gemt i temp-fil. Men efter ca 6-7 minutter, script ender brat, siger, scriptname.sh test: forventet argument. Kan nogen hjælpe mig ud på dette? |
|
||||
|
Script virker ikke ..
Citat:
Efter at have læst dit svar, kan du læse et par artikler om awk. En eller anden måde, er scriptet stadig ikke fungerer, og slutter sige .. ********************** awk: record `/ svar> Fre 00:27 :...' for lang rekordstore antal 22 ********************** Jeg har store forhåbninger om du nu Tak |
![]() |
| Bogmærker |
| Thread Tools | Søg denne tråd |
| Display Modes | Bedøm denne tråd |
|
|