![]() |
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.
|
|
google unix.com
|
|||||||
| Forum | Registrera | Forum Regler | Länkar | Album | FAQ | Medlemslista | Kalender | Söka | Dagens inlägg | Markera forum som lästa |
| 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 |
![]() |
|
|
LinkBack | Thread Tools | Sök i denna tråd | Rate Thread | Visningslägen |
|
|
|
||||
|
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 |
|
||||
|
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 |
|
||||
|
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
|
|
||||
|
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 |