The UNIX and Linux Forums  


Go Back   UNIX och Linux Forum > Upp Forum > Shell-programmering och Skript
.
google unix.com



Shell-programmering och Skript Post frågor om ksh, CSH, SH, bash, PERL, PHP, sed, awk och andra skalskript och skal skriptspråk här.

Mer UNIX och Linux Forum Ämnen Du kan hitta Helpful
Tråd Thread Starter Forum Svar Senaste Inlägg
displayen förändras på olika sätt i ett rum på skärmen i ksh raidzero Shell-programmering och Skript 7 09-25-2008 10:24
köra. profilen efter byte variabel sboxtops AIX 2 09-02-2008 03:19
bash script utförande med en variabel i en enda rad shoeb Shell-programmering och Skript 1 07-06-2008 05:14
IFS förändrar variabelvärdet pvar Shell-programmering och Skript 1 02-25-2005 06:21
Mycket enkel fråga om att ändra PS1 variabel vid starten! abidmalik UNIX for Dummies Frågor & Svar 2 08-26-2002 02:05

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ök i denna tråd Rate Thread Visningslägen
  #1 (permalänk)  
Old 11-18-2008
sx3v1l_1n51de sx3v1l_1n51de is offline
Registered User
  
 

Join Date: Jan 2005
Inlägg: 27
Talking Hjälp med awk script, ändra FS för en enda variabel

Hej alla, im nya awk och skulle apreciate om du kunde berätta hur man gör detta, jag har en fil med flera poster så här:


Kod:
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 försöker få de värden den sista området, vilket skulle vara en beskrivning av händelsen (t.ex. USB till seriell Anslutningstest - start), men i behov av att ytterligare skilja denna fråga med ett "-" att veta om testet började eller slut, det sista fältet är lite rörliga så jag tänkte att y kan användas ungefär så här:

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

första jag alla områden från 6 till 15 och sedan, i tryed förändra FS till - och skriva ut det andra fältet ...

cat $ 1 | awk '(beskrivning \u003d $ 6 "" $ 7 "" $ 8 "" $ 9 "" $ 10 "" $ 11 "" $ 12 "" $ 13 "" $ 14 "" $ 15, FS \u003d "-" Skriv ut beskrivning $ 2)'

naturligtvis, som skriver ut den andra på hela linjen, vilket är det år ... hehe ... Finns det något sätt att berätta awk att mata ut variabeln andra området som avgränsas av en "-"?

tack alla
  #2 (permalänk)  
Old 11-18-2008
radoulov's Avatar
radoulov radoulov is offline Forum Staff  
missbrukare
  
 

Join Date: Jan 2007
Ort: Варна, България / Milano, Italia
Inlägg: 2.915
Med awk:


Kod:
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:


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

  #3 (permalänk)  
Old 11-18-2008
radoulov's Avatar
radoulov radoulov is offline Forum Staff  
missbrukare
  
 

Join Date: Jan 2007
Ort: Варна, България / Milano, Italia
Inlägg: 2.915
Faktum är att du inte behöver dela uttryckligen med awk:


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


Senast redigerad av radoulov; 11-18-2008 vid 04:17..
  #4 (permalänk)  
Old 11-18-2008
joeyg's Avatar
joeyg joeyg is offline Forum Staff  
Modérateur
  
 

Join Date: Dec 2007
Ort: Home av 17-Temne världen mästare Boston Celtics
Inlägg: 1311
Cool Osäker på din önskade resultatet, men

Jag lade till en kommentar som visar att de två områdena har skilts åt, och lagt till "red" till åtgärden verb (bara för att det låter bättre så).


Kod:
> 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

Komihåglista

Thread Tools Sök i denna tråd
Sök i denna tråd:

Avancerad sökning
Visningslägen Betygsätt denna tråd
Betygsätt denna tråd:

Utstationering Regler
Du får inte efter nya trådar
Du får inte efter svar
Du får inte skicka bilagor
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG] kod
HTML-koden är Av
Trackback är
Pingbacks är
Refbacks är




Alla tider är GMT -4. Klockan är nu 09:22.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Översättningar Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX och Linux Forum Innehållet upphovsrättsskyddat © 1993-2009. All Rights Reserved.Ad förvaltning RedTyger

Content Relevant webbadresser från vBSEO 3.2.0