The UNIX and Linux Forums  

Go Back   UNIX og Linux Forums > Top Forums > Shell Programmering og Scripting
.
google unix.com



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

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 Søg denne tråd Rate Thread Display Modes
  #1 (permalink)  
Old 02-08-2007
gurpreet470 gurpreet470 is offline
Registreret Bruger
  
 

Join Date: Feb 2007
Stillinger: 4
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?
  #2 (permalink)  
Old 02-08-2007
radoulov's Avatar
radoulov radoulov is offline Forum Staff  
narkoman
  
 

Join Date: Jan 2007
Beliggenhed: Варна, България / Milano, Italia
Posts: 2.928
*GNU Awk * løsning:


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

  #3 (permalink)  
Old 02-09-2007
gurpreet470 gurpreet470 is offline
Registreret Bruger
  
 

Join Date: Feb 2007
Stillinger: 4
Script virker ikke ..

Citat:
Oprindeligt Indsendt af radoulov
*GNU Awk * løsning:


Code:
awk '/data>1234/{print $5}' RS="<abc>" FS="\n" infile
Jeg er virkelig imponeret over awk magten ..
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
  #4 (permalink)  
Old 02-09-2007
radoulov's Avatar
radoulov radoulov is offline Forum Staff  
narkoman
  
 

Join Date: Jan 2007
Beliggenhed: Варна, България / Milano, Italia
Posts: 2.928
Prøv at gøre optegnelser kortere. De sagde, at <abc> </ abc> tags kommer i den sidste del rundt efter 500.000 linie, så den første post er virkelig lang . Du kan gøre det kortere herunder andre tags / strygere (som du har på beginig af filen) i RS: for eksempel RS \u003d "<abc> | <other_tag>". Eller hvis du foretrækker det, kan du sende mig en zip-kopi af din fil privat, så jeg kunne give en prøve
BTW, hvad er din AWK version?
Closed Thread

Bogmærker

Thread Tools Søg denne tråd
Søg denne tråd:

Avanceret søgning
Display Modes Bedøm denne tråd
Bedøm denne tråd:

Udstationering Regler
Du kan ikke post nye tråde
Du kan ikke post svar
Du kan ikke post vedhæftede filer
Du kan ikke redigere dine indlæg

BB-kode er
Smilies er
[IMG] koden er
HTML-koden er Slukket
Trackbacks er
Pingbacks er
Refbacks er




Alle tidspunkter er GMT -4. Den tid er nu 02:59 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Oversættelser Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. Alle rettigheder Reserved.Ad Management ved RedTyger

Content Relevant webadresser ved vBSEO 3.2.0