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
display skiftende variable på ét sted på skærmen i ksh raidzero Shell Programmering og Scripting 7 09-25-2008 10:24 AM
gentagelsen. profil efter skiftende variable sboxtops AIX 2 09-02-2008 03:19 PM
bash script gennemførelse med en variabel i en enkelt linje shoeb Shell Programmering og Scripting 1 07-06-2008 05:14 AM
IFS ændre variablen værdi pvar Shell Programmering og Scripting 1 02-25-2005 06:21 PM
Meget simpelt spørgsmål om at ændre PS1 variable ved start! abidmalik UNIX for dummyer Spørgsmål & svar 2 08-26-2002 02:05 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 11-18-2008
sx3v1l_1n51de sx3v1l_1n51de is offline
Registreret Bruger
  
 

Join Date: Jan 2005
Stillinger: 27
Talking Hjælp med awk script, ændre FS for en enkelt variabel

Hej alle, im nye til awk og ville apreciate hvis du kunne fortælle mig, hvordan du gør dette, har jeg en fil med en række poster som denne:


Code:
2008-09-09 21:57:45   44  403 CUSTOM_EVENT                      Upgrade - end1
2008-09-09 21:57:46   45  403 CUSTOM_EVENT                      Component Check - start
2008-09-09 21:57:56   46  403 CUSTOM_EVENT                      Component Check - end
2008-09-09 21:57:56   47  403 CUSTOM_EVENT                      OSChecksum - start
2008-09-09 21:59:15   48  403 CUSTOM_EVENT                      OSChecksum - end
2008-09-09 21:59:15   49  403 CUSTOM_EVENT                      SELLogCheck - start
2008-09-09 22:01:39   50  403 CUSTOM_EVENT                      SELLogCheck - end
2008-09-09 22:01:40   51  403 CUSTOM_EVENT                      USB to Serial Connection Test - start
2008-09-09 22:43:46   52  403 CUSTOM_EVENT                      USB to Serial Connection Test - start
2008-09-09 22:44:15   53  403 CUSTOM_EVENT                      MemoryCheck - start
2008-09-09 22:44:16   54  403 CUSTOM_EVENT                      MemoryCheck - end

im forsøger at få de værdier, det sidste felt, hvilket ville være en beskrivelse af begivenheden (f.eks USB til Serial Connection Test - start), men jeg har brug for yderligere at adskille dette felt med en "-" for at vide, om prøven påbegyndt eller ophørt, det sidste felt er lidt variable så jeg regnede y kunne bruge noget lignende dette:

cat $ 1 | awk '(beskrivelse \u003d $ 6 "" $ 7 "" $ 8 "" $ 9 "" $ 10 "" $ 11 "" $ 12 "" $ 13 "" $ 14 "" $ 15; udskrive beskrivelse)'

først vil jeg få alle de felter fra 6 til 15, og derefter vil jeg tryed ændre FS til - og print det andet felt ...

cat $ 1 | awk '(beskrivelse \u003d $ 6 "" $ 7 "" $ 8 "" $ 9 "" $ 10 "" $ 11 "" $ 12 "" $ 13 "" $ 14 "" $ 15; FS \u003d "-"; udskrive beskrivelse $ 2)'

naturligvis, at udskriver det andet felt af hele linjen, som er det år ... hehe ... Er der en måde at fortælle awk til output variablen andet område afgrænset af en "-"?

tak alle
  #2 (permalink)  
Old 11-18-2008
radoulov's Avatar
radoulov radoulov is offline Forum Staff  
narkoman
  
 

Join Date: Jan 2007
Beliggenhed: Варна, България / Milano, Italia
Posts: 2.928
Med AWK:


Code:
awk '{
  for (i=6; i<=NF; i++) 
    s = s ? s FS $i : $i    
  split(s, t, "-")
  print "desc:", t[1], "state:", t[2]
  s = ""  
}' infile

Med Perl:


Code:
perl -lane'
  print "desc: @F[5..$#F-2] state: $F[-1]"
  ' infile

  #3 (permalink)  
Old 11-18-2008
radoulov's Avatar
radoulov radoulov is offline Forum Staff  
narkoman
  
 

Join Date: Jan 2007
Beliggenhed: Варна, България / Milano, Italia
Posts: 2.928
Faktisk behøver du ikke at dele eksplicit med AWK:


Code:
awk '{
  for (i=6; i<=NF-2; i++) 
    s = s ? s FS $i : $i    
  print "desc:", s, "state:", $NF
  s = ""  
}' infile


Sidst redigeret af radoulov; 11-18-2008 på 04:17 PM..
  #4 (permalink)  
Old 11-18-2008
joeyg's Avatar
joeyg joeyg is offline Forum Staff  
modérateur
  
 

Join Date: Dec 2007
Location: Home af 17-tiden verdensmester Boston Celtics
Stillinger: 1311
Cool Ikke er sikker på din ønskede resultat, men

Jeg tilføjede en kommentar til at vise, at de to områder var adskilt, og tilføjede "ed" til aktionen verbum (bare fordi det lyder bedre på denne måde).


Code:
> cat file74
2008-09-09 21:57:45   44  403 CUSTOM_EVENT                      Upgrade - end1
2008-09-09 21:57:46   45  403 CUSTOM_EVENT                      Component Check - start
2008-09-09 21:57:56   46  403 CUSTOM_EVENT                      Component Check - end
2008-09-09 21:57:56   47  403 CUSTOM_EVENT                      OSChecksum - start
2008-09-09 21:59:15   48  403 CUSTOM_EVENT                      OSChecksum - end
2008-09-09 21:59:15   49  403 CUSTOM_EVENT                      SELLogCheck - start
2008-09-09 22:01:39   50  403 CUSTOM_EVENT                      SELLogCheck - end
2008-09-09 22:01:40   51  403 CUSTOM_EVENT                      USB to Serial Connection Test - start
2008-09-09 22:43:46   52  403 CUSTOM_EVENT                      USB to Serial Connection Test - start
2008-09-09 22:44:15   53  403 CUSTOM_EVENT                      MemoryCheck - start
2008-09-09 22:44:16   54  403 CUSTOM_EVENT                      MemoryCheck - end

> cut -c65- file74 | awk '{FS="-"}{print $1" _which was_ "$2"ed"}'
Upgrade _which was_ -ed
Component Check  _which was_  started
Component Check  _which was_  ended
OSChecksum  _which was_  started
OSChecksum  _which was_  ended
SELLogCheck  _which was_  started
SELLogCheck  _which was_  ended
USB to Serial Connection Test  _which was_  started
USB to Serial Connection Test  _which was_  started
MemoryCheck  _which was_  started
MemoryCheck  _which was_  ended

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 06:56 PM.


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