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
brug for hjælp i Analysering en csv-fil og generere et nyt outputfil VKR Shell Programmering og Scripting 15 08-01-2008 08:33 AM
Finde & Moving Aldersformand File ved Analysering / Sorteringsaffald Dato Info i File Navne nikosey Shell Programmering og Scripting 6 07-30-2008 10:46 PM
Parse en fil aol12123 Shell Programmering og Scripting 11 03-25-2008 02:06 AM
Analysering en csv-fil chiru_h Shell Programmering og Scripting 6 02-12-2008 09:33 AM
Analysering en logfil tbirenzweig Shell Programmering og Scripting 4 06-20-2006 08:02 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 10-13-2008
brawnr brawnr is offline
Registreret Bruger
  
 

Join Date: oktober 2008
Stillinger: 2
File Analysering Hjælp

Hej,

Jeg har en fil, der indeholder grupper af felter. Disse grupper er adskilt af en tom linje, til at danne en logisk rekord.

Hver linje består af en mark-værdipar.

Hvis ønsker at finde alle de poster, hvor feltet 'd' har en værdi af'4 ', og hvis den gør det, jeg ønsker, at værdien af feltet' a '(fra samme record).

Her er et eksempel input fil:
Citat:
en 1
b 2
c 3
d 4
a 2
b 1
d 6

B 3
a 6
c 2

c 2
d 4
a 9

c 3
d 4
en 3

d 4
a 6
Jeg ønsker at ende op med en fil, der indeholder:
Citat:
1
6
Import ting at nore om inddatafil er a) antallet af registreringer varierer, b) ikke alle optegnelser indeholder et 'd' område, c) ikke alle optegnelser indeholder en 'a' område, e) områder kan i vilkårlig rækkefølge inden for en rekord.

Jeg tror, at svaret vil være at anvende AWK men jeg har meget lidt kendskab til AWK og kun har brugt det for meget grundlæggende ting.

OS er søndag 5.8 af den måde.

Hjælp ville være meget værdsat.

Tak.

  #2 (permalink)  
Old 10-13-2008
cfajohnson's Avatar
cfajohnson cfajohnson is offline Forum Advisor  
Shell programmør, forfatter
  
 

Join Date: Mar 2007
Beliggenhed: Toronto, Canada
Stillinger: 2361

Baseret på input, du har anført, at produktionen skal være:

Code:
1
9
3
6
Dette script giver dig, at:

Code:
awk '
/a/ { a = $2 }
/d/ { d = $2 }
/^$/ && d == 4 && a > 0 {
   print a 
   a = -1
   d = -1
}
END {
   if ( d == 4 && a > 0 ) print a
}
' "$FILE"
  #3 (permalink)  
Old 10-13-2008
Shamrock shamrock is offline Forum Advisor  
Registreret Bruger
  
 

Join Date: oktober 2007
Beliggenhed: USA
Posts: 753
Uklare

Synes at være en stor kløft mellem dine krav og output, du forventer. Baseret på, hvad du har udtalt outputtet skal se ud cfajohnson's awk script ... korrekte???
  #4 (permalink)  
Old 10-13-2008
brawnr brawnr is offline
Registreret Bruger
  
 

Join Date: oktober 2008
Stillinger: 2
Beklager, men du er korrekte, produktionen skulle læses:

Code:
 
1
9
3
6
Mange tak for din hjælp cfajohnson.
  #5 (permalink)  
Old 10-13-2008
radoulov's Avatar
radoulov radoulov is offline Forum Staff  
narkoman
  
 

Join Date: Jan 2007
Beliggenhed: Варна, България / Milano, Italia
Indlæg: 2.892
Med Perl:
Code:
perl -00 -ne'print $1,"\n"if/d 4/&&/a (.)/' filename
Og en anden AWK tilgang:

Code:
awk '/d 4/ && /a / {
  for (i=1; i<=NF; i++)
    if ($i == "a") print $(i+1)
	}' RS= filename

Sidst redigeret af radoulov; 10-13-2008 på 04:03 PM.. Årsag: refactored
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 05:33 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