The UNIX and Linux Forums  


Go Back   De Unix-en Linux Forum > Top Forums > Programmeren en Shell Scripting
.
google unix.com



Programmeren en Shell Scripting Post vragen over KSH, CSH, SH, Bash, Perl, PHP, sed, awk en andere shell scripts en shell scripting talen hier.

Meer UNIX en Linux Forum Onderwerpen Misschien vindt u Helpful
Draad Thread Starter Forum Antwoorden Last Post
Verslag generatie gmahesh2k Programmeren en Shell Scripting 3 05-16-2008 03:33
het genereren van rapporten gmahesh2k UNIX voor Dummies Questions & Answers 2 05-16-2008 02:41
Generatie bestand kopiëren van de technische ondersteuning voor back-up sjohnson UNIX voor Dummies Questions & Answers 12 04-04-2008 08:39
Oracle Verslag generatie DILEEP410 Programmeren en Shell Scripting 7 01-04-2007 04:52
Streepjescode generatie in de tekst-bestand en het afdrukken van het gebruik van dezelfde lp commando. Manjunath Naik SUN Solaris 0 05-26-2005 03: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 Zoeken in deze Thread Rate Thread Display Modes
  #1 (permalink)  
Old 03-15-2008
McLan McLan is offline
Geregistreerde gebruiker
  
 

Join Datum: maart 2008
Posts: 21
awk-rapport uit invoerbestand

Ik heb input file met onderstaande inhoud:

Persoon:
Naam: Firstname1 lastname1
Adres: 111, Straat
Plaats: Hilversum

Persoon:
Naam: Fistname2 lastname2
Adres: 222, straat
Cit: Bussum

Persoon:
Naam: Firstname2 lastname3
Adres: 333, station straat
Plaats: Amsterdam

Ik moet de output bestand withe de onderstaande inhoud:
lastname1 111 Hilversum
lastname2 222 Bussum
lastname3 333 Amsterdam

is het mogelijk, zo ja hoe?

Bedankt
  #2 (permalink)  
Old 03-15-2008
Klashxx's Avatar
Klashxx Klashxx is offline Forum Advisor  
HP-UX/Linux/Oracle
  
 

Join Date: Feb 2006
Locatie: Almería, Spanje
Posts: 393
Op deze manier:

Code:
awk '/^Name/{n=$NF}/^Address/{a=$2}/^City/{print n,a,$NF}' FS="( )|(,)" file

  #3 (permalink)  
Old 03-16-2008
McLan McLan is offline
Geregistreerde gebruiker
  
 

Join Datum: maart 2008
Posts: 21
awk-rapport uit invoerbestand

Dankzij Klashxx
zijn prachtige, it works.
Ik probeerde undersand wat betekent FS \u003d "()|(,)" doen?
Kunt u geeft meer info over dit echter zonder dat het bovenstaande ook de output is hetzelfde
awk '/ ^ Naam / (n \u003d $ NF) / ^ Adres / (a \u003d $ 2) / ^ Stad / (print n, a, $ NF)' inpfile
lastname1 111, Hilversum
lastname2 222, Bussum
lastname3 333, Amsterdam

Nu het verzoek is verschillend:
de input bestand is:
Persoon:
Naam: Firstname1 lastname1
Adres: 111, Street "Narder straat"
Plaats: Hilversum

Persoon:
Naam: Fistname2 lastname2
Adres: 222, Street "Zoud straat"
Plaats: Bussum

Persoon:
Naam: Firstname2 lastname3
Adres: 333, Street "Station straat"
Plaats: Amsterdam


Ik heb de outout bestand als volgt:
lastname1 111 "Narder straat" Hilversum
lastname2 222 "Zoud straat" Bussum
lastname3 333 "Station straat" Amsterdam

Nogmaals bedankt
  #4 (permalink)  
Old 03-16-2008
yunccll yunccll is offline
Geregistreerde gebruiker
  
 

Join Datum: maart 2008
Posts: 23
FS betekent Field Separator, met behulp van FS \u003d "()|(,)" betekent huidige FS is de ruimte of ','
Als u de verklaring gebruikt, is het resultaat
lastname1 111 Hilversum
lastname2 222 Bussum
lastname3 333 Amsterdam

zonder FS \u003d"()|(,)" resultaat is:
lastname1 111, Hilversum
lastname2 222, Bussum
lastname3 333, Amsterdam

ze zijn verschillend, de eerste is 111 en de volgende is 111,


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


Code:
> 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 (permalink)  
Old 03-16-2008
McLan McLan is offline
Geregistreerde gebruiker
  
 

Join Datum: maart 2008
Posts: 21
Hi Aaron
Dat is prima, dus we zijn het weergeven van 4 en 5 de velden van adres.
Ik ben niet zeker of de straat, op slechts 2 velden bevat, kan het bevatten meer gebieden als "uw en mijn straat en anderen straat zo goed", in dit geval kan ik niet gebruiken slechts 4 e en 5 e fileds.
Dus heel duidelijk zijn, mijn eis is
Ik heb een 3 e veld van de lijn die Naam bevat met FS "" ruimte:
Ik heb 2 e veld van de lijn die bevat Adres met FS () ruimte en 2 e ingediend uit dezelfde lijn met FS ( ") Quote en noodzaak
Ik heb 2 e veld vormen de lijn die bevat City met FS () ruimte.

Nogmaals bedankt.
McLan
  #6 (permalink)  
Old 03-16-2008
yunccll yunccll is offline
Geregistreerde gebruiker
  
 

Join Datum: maart 2008
Posts: 23

Code:
awk 'BEGIN{FS="( )|(,)"} /^Name/{n=$NF}/^Address/{split($0, arr, "\""); a=$2" \"" arr[2]"\""}/^City/{print n,a,$NF}' data

misschien, Dit is wat je wilt!

. Aaron
Closed Thread

Bladwijzers

Thread Tools Zoeken in deze Thread
Zoeken in deze Thread:

Uitgebreid zoeken
Display Modes Beoordeel deze draad
Beoordeel deze draad:

Posting Regels
Jij mag niet Post Nieuwe threads
Jij mag niet na antwoorden
Jij mag niet post attachments
Jij mag niet bewerk uw berichten

BB code is Aan
Smilies zijn Aan
[IMG] code Aan
HTML-code is Uit
Trackbacks zijn Aan
Pingbacks zijn Aan
Refbacks zijn Aan




Alle tijden zijn GMT -4. Het is nu 04:41.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Vertalingen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
De Unix-en Linux Forums Copyright © 1993-2009. Alle rechten Reserved.Ad Beheer door RedTyger

Content Relevante URL's door vBSEO 3.2.0