The UNIX and Linux Forums  
Hej och välkommen från USA till UNIX och Linux Forum! Tack för ditt besök och gå med i vår globala gemenskapen.

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
Rapport generation gmahesh2k Shell-programmering och Skript 3 05-16-2008 02:33
rapporter gmahesh2k UNIX for Dummies Frågor & Svar 2 05-16-2008 01:41
Generation filkopieringen för teknisk support backup sjohnson UNIX for Dummies Frågor & Svar 12 04-04-2008 07:39
Oracle Rapportgenerering DILEEP410 Shell-programmering och Skript 7 01-04-2007 04:52
Bar kodgenerering i att textfilen och skriva ut samma hjälp lp kommando. Manjunath Naik Sun Solaris 0 05-26-2005 02:50

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 03-15-2008
McLan McLan is offline
Registered User
  
 

Join Date: mars 2008
Inlägg: 21
awk-rapporter från indatafil

Jag har indatafil med följande innehåll:

Person
Namn: Firstname1 lastname1
Adress: 111, Straat
Stad: Hilversum

Person
Namn: Fistname2 lastname2
Adress: 222, street
CIT: Bussum

Person
Namn: Firstname2 lastname3
Adress: 333, station straat
Stad: Amsterdam

Jag behöver utdatafilen VIDJEBAND nedanstående innehåll:
lastname1 111 Hilversum
lastname2 222 Bussum
lastname3 333 Amsterdam

är det möjligt, om ja hur?

Tack
  #2 (permalänk)  
Old 03-15-2008
Klashxx's Avatar
Klashxx Klashxx is offline Forum Advisor  
HP-UX/Linux/Oracle
  
 

Join Date: februari 2006
Ort: Almería, Spanien
Inlägg: 393
Detta sätt:
Kod:
awk '/^Name/{n=$NF}/^Address/{a=$2}/^City/{print n,a,$NF}' FS="( )|(,)" file
  #3 (permalänk)  
Old 03-16-2008
McLan McLan is offline
Registered User
  
 

Join Date: mars 2008
Inlägg: 21
awk-rapporter från indatafil

Tack Klashxx
its wonderful, it works.
Jag försökte undersand Vad betyder FS \u003d "()|(,)" göra?
Skulle ni kunna ge mer information om detta, dock utan att ovanstående även produktionen är samma
awk '/ ^ Name / (n \u003d $ NF) / ^ Adress / (a \u003d $ 2) / ^ Stad / (print n, a, $ NF)' inpfile
lastname1 111, Hilversum
lastname2 222, Bussum
lastname3 333, Amsterdam

nu begäran är annorlunda:
indatafilen är:
Person
Namn: Firstname1 lastname1
Adress: 111, Street "Narder straat"
Stad: Hilversum

Person
Namn: Fistname2 lastname2
Adress: 222, Street "Zoud straat"
Stad: Bussum

Person
Namn: Firstname2 lastname3
Adress: 333, Street "Station straat"
Stad: Amsterdam


Jag behöver outout filen nedan:
lastname1 111 "Narder straat" Hilversum
lastname2 222 "Zoud straat" Bussum
lastname3 333 "Station straat" Amsterdam

Tack igen
  #4 (permalänk)  
Old 03-16-2008
yunccll yunccll is offline
Registered User
  
 

Join Date: mars 2008
Inlägg: 23
FS betyder Field Separator, med FS \u003d "()|(,)" betyder nuvarande FS är utrymmet eller ','
Om du använder ett uttalande, är resultatet
lastname1 111 Hilversum
lastname2 222 Bussum
lastname3 333 Amsterdam

utan FS \u003d"()|(,)" resultat är:
lastname1 111, Hilversum
lastname2 222, Bussum
lastname3 333, Amsterdam

de är olika, första är 111 och nästa är 111,

Kod:
> cat data
Person:
Name: Firstname1 lastname1
Address: 111, Street "Narder straat"
City : Hilversum
 
Person:
Name : Fistname2 lastname2
Address: 222, Street "Zoud straat"
City: Bussum
 
Person:
Name : Firstname2 lastname3
Address: 333, Street "Station straat"
City: Amsterdam
Kod:
> awk 'BEGIN{FS="( )|(,)"} /^Name/{n=$NF}/^Address/{a=$2" "$4" "$5}/^City/{print n,a,$NF}' data
lastname1 111 "Narder straat" Hilversum
lastname2 222 "Zoud straat" Bussum
lastname3 333 "Station straat" Amsterdam
. Aaron
  #5 (permalänk)  
Old 03-16-2008
McLan McLan is offline
Registered User
  
 

Join Date: mars 2008
Inlägg: 21
Hej Aaron,
Detta är bra, så vi visar 4 och 5: e områdena adress.
Jag vet inte om gatan bara innehåller 2 fält, kan den innehålla flera fält som "din och min straat & others straat också", i det här fallet kan jag inte använda bara 4: e och 5: e fileds.
Så för att vara mycket tydlig, är mitt krav
Jag behöver en 3: e fältet från den linje som innehåller namn med FS "" space:
Jag behöver 2: a fältet från den linje som innehåller adressen med FS () utrymme och behöver 2: a in i samma linje med FS ( ") Citat och
Jag behöver 2: a fältet form raden som innehåller City med FS () utrymme.

Tack igen.
McLan
  #6 (permalänk)  
Old 03-16-2008
yunccll yunccll is offline
Registered User
  
 

Join Date: mars 2008
Inlägg: 23
Kod:
awk 'BEGIN{FS="( )|(,)"} /^Name/{n=$NF}/^Address/{split($0, arr, "\""); a=$2" \"" arr[2]"\""}/^City/{print n,a,$NF}' data
Kanske är det vad du vill!

. Aaron
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 03:09.


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