The UNIX and Linux Forums  
Hallo en welkom van de Verenigde Staten aan de UNIX en Linux Forum! Bedankt voor uw bezoek en Deelnemen aan onze wereldwijde gemeenschap.

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
Script extractie van de onjuiste gegevens uit tekstbestand jermaine4ever Programmeren en Shell Scripting 6 03-16-2009 12:18
Verkeerde login NOS? Juterassee SUN Solaris 5 10-30-2008 11:08
login onjuist espace1000 UNIX voor Dummies Questions & Answers 2 08-22-2008 06:48
Onjuiste aanmelding sydney2008 Red Hat 6 08-22-2008 04:57
Onjuiste directory naam jand102821 UNIX voor Dummies Questions & Answers 1 06-19-2002 04:35 PM

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 04-21-2009
Pinnacle pinnacle is offline
Geregistreerde gebruiker
  
 

Join Date: april 2009
Posts: 182
Awk onjuiste gegevens.

Ik gebruik het volgende commando:

Code:
nawk -F"," 'NR==FNR {a[$2$3]=$1;next} a[$2$3] {print a[$2$3],$1,$2,$3}'  file1 file2
Ik krijg 40 records uitgang.
Maar als ik invoer bestand1 en bestand2 in MS Access i get 140 records.
En ik weet 140 is correct tellen.

Stellen uw hulp bij het corrigeren van het bovenstaande script
  #2 (permalink)  
Old 04-21-2009
vgersh99's Avatar
vgersh99 vgersh99 is online now Forum Staff  
Moderator
  
 

Join Date: Feb 2005
Locatie: Boston, MA
Berichten: 5.122
Het zou zeker helpen als u een meer gedetailleerde beschrijving van wat je probeert te bereiken met het monster van gegevensbestanden en de verwachte productie.

Mijn glazen bol is een beetje fuzzy, maar:
Code:
nawk -F"," 'NR==FNR {a[$2,$3]=$1;next} ($2 SUBSEP $3) in a {print a[$2,$3],$1,$2,$3}'  OFS=, file1 file2
  #3 (permalink)  
Old 04-21-2009
Pinnacle pinnacle is offline
Geregistreerde gebruiker
  
 

Join Date: april 2009
Posts: 182
Citaat:
Oorspronkelijk geplaatst door vgersh99 View Post
Het zou zeker helpen als u een meer gedetailleerde beschrijving van wat je probeert te bereiken met het monster van gegevensbestanden en de verwachte productie.

Mijn glazen bol is een beetje fuzzy, maar:
Code:
nawk -F"," 'NR==FNR {a[$2,$3]=$1;next} ($2 SUBSEP $3) in a {print a[$2,$3],$1,$2,$3}'  OFS=, file1 file2
vgersh99

Ik heb twee bestanden
$ Hoofd bestand1
zip, Voornaam, Achternaam
07777, ABC, DEF
22584, dec, DLO
25487, xyz, JKL
25488, dim, kio

$ Hoofd bestand2
Doel server database
SSN, Voornaam, Achternaam
123456789, ABC, DEF
123456789, dec, DLO
123456789, xyz, JKL
123456789, dim, kio
wilde Output:
SSN, zip, Voornaam, Achternaam

Code:
nawk -F"," 'NR==FNR {a[$2,$3]=$1;next} ($2 SUBSEP $3) in a {print a[$2,$3],$1,$2,$3}'  OFS=,  " file2 file1
40 Matches
Code:
nawk -F"," 'NR==FNR {a[$2,$3]=$1;next} ($2 SUBSEP $3) in a {print a[$2,$3],$1,$2,$3}'  OFS=,  " file1 file2
140 matches
140 wedstrijden juist is weet ik, maar die twee moeten geven 140 i dont weet waarom haar geven verschil.

Kunt u uitleggen dit deel ($ 2 SUBSEP $ 3)
een [$ 2, $ 3], die wij gebruiken, hier omdat haar kommagescheiden invoerbestand is of is het de algemene regel
Als i dont gebruiken, dan ook krijg ik hetzelfde resultaat
  #4 (permalink)  
Old 04-21-2009
vgersh99's Avatar
vgersh99 vgersh99 is online now Forum Staff  
Moderator
  
 

Join Date: Feb 2005
Locatie: Boston, MA
Berichten: 5.122
Citaat:
Oorspronkelijk geplaatst door zenit View Post
vgersh99

Ik heb twee bestanden
$ Hoofd bestand1
zip, Voornaam, Achternaam
07777, ABC, DEF
22584, dec, DLO
25487, xyz, JKL
25488, dim, kio

$ Hoofd bestand2
Doel server database
SSN, Voornaam, Achternaam
123456789, ABC, DEF
123456789, dec, DLO
123456789, xyz, JKL
123456789, dim, kio
wilde Output:
SSN, zip, Voornaam, Achternaam

Code:
nawk -F"," 'NR==FNR {a[$2,$3]=$1;next} ($2 SUBSEP $3) in a {print a[$2,$3],$1,$2,$3}'  OFS=,  " file2 file1
40 Matches
Code:
nawk -F"," 'NR==FNR {a[$2,$3]=$1;next} ($2 SUBSEP $3) in a {print a[$2,$3],$1,$2,$3}'  OFS=,  " file1 file2
140 matches
De boven de 2 aanroepingen zijn precies hetzelfde. Ik begrijp niet waarom krijg je verschillende resultaten.
Ook ik begrijp niet waarom u een volgnullen dubbele aanhalingstekens (in rood) in beide gevallen?
Citaat:
Oorspronkelijk geplaatst door zenit
140 wedstrijden juist is weet ik, maar die twee moeten geven 140 i dont weet waarom haar geven verschil.

Kunt u uitleggen dit deel ($ 2 SUBSEP $ 3)
een [$ 2, $ 3], die wij gebruiken, hier omdat haar kommagescheiden invoerbestand is of is het de algemene regel
Als i dont gebruiken, dan ook krijg ik hetzelfde resultaat
Nee, het is niet omdat uw bestand is komma-gescheiden. U kan uw array-index alleen door Concatenatie de strijkers ($ 2 $ 3) of (die beter is voor verdere verwerking) door dit te doen:
Code:
a[$2,$3]
In het kader van de array index gebouw, de "," wordt vervangen door de awk de interne variabele SUBSEP. Als u later beslist om "split" de index (te vinden onderdelen) kunt u gesplitst door SUBSEP. Als je gewoon aaneenschakelen de string, kunt u niet de reconstructie van de index van de oorspronkelijke onderdelen.

De oorspronkelijk gestelde oplossing moet u het gewenste resultaat.
Gezien bestand1:
Code:
zip,FirstName,Lastname
07777,abc,def
22584,dec,dlo
25487,xyz,jkl
25488,dim,kio
en bestand2:
Code:
SSN,Firstname,LastName
123456789,abc,def
123456789,dec,dlo
123456789,xyz,jkl
123456789,dim,kio
uitgevoerd:
Code:
nawk -F, 'NR==FNR {a[$2,$3]=$1;next} ($2 SUBSEP $3) in a {print a[$2,$3],$1,$2,$3}'  OFS=, file2 file1
Resultaten in:
Code:
123456789,07777,abc,def
123456789,22584,dec,dlo
123456789,25487,xyz,jkl
123456789,25488,dim,kio
Controleer uw bestand1 en bestand2 - of er nog eventuele verschillen en / of ingesloten ruimten.

Ook dit is niet een van je eerste forum posten en je hebt gevraagd in het verleden: gelieve gebruik te maken van BB code tags bij het plaatsen van gegevens of codevoorbeelden.
  #5 (permalink)  
Old 04-21-2009
Pinnacle pinnacle is offline
Geregistreerde gebruiker
  
 

Join Date: april 2009
Posts: 182
Citaat:
Oorspronkelijk geplaatst door vgersh99 View Post
De boven de 2 aanroepingen zijn precies hetzelfde. Ik begrijp niet waarom krijg je verschillende resultaten.
Ook ik begrijp niet waarom u een volgnullen dubbele aanhalingstekens (in rood) in beide gevallen?

Nee, het is niet omdat uw bestand is komma-gescheiden. U kan uw array-index alleen door Concatenatie de strijkers ($ 2 $ 3) of (die beter is voor verdere verwerking) door dit te doen:
Code:
a[$2,$3]
In het kader van de array index gebouw, de "," wordt vervangen door de awk de interne variabele SUBSEP. Als u later beslist om "split" de index (te vinden onderdelen) kunt u gesplitst door SUBSEP. Als je gewoon aaneenschakelen de string, kunt u niet de reconstructie van de index van de oorspronkelijke onderdelen.

De oorspronkelijk gestelde oplossing moet u het gewenste resultaat.
Gezien bestand1:
Code:
zip,FirstName,Lastname
07777,abc,def
22584,dec,dlo
25487,xyz,jkl
25488,dim,kio
en bestand2:
Code:
SSN,Firstname,LastName
123456789,abc,def
123456789,dec,dlo
123456789,xyz,jkl
123456789,dim,kio
uitgevoerd:
Code:
nawk -F, 'NR==FNR {a[$2,$3]=$1;next} ($2 SUBSEP $3) in a {print a[$2,$3],$1,$2,$3}'  OFS=, file2 file1
Resultaten in:
Code:
123456789,07777,abc,def
123456789,22584,dec,dlo
123456789,25487,xyz,jkl
123456789,25488,dim,kio
Controleer uw bestand1 en bestand2 - of er nog eventuele verschillen en / of ingesloten ruimten.

Ook dit is niet een van je eerste forum posten en je hebt gevraagd in het verleden: gelieve gebruik te maken van BB code tags bij het plaatsen van gegevens of codevoorbeelden.
Code:
nawk -F"," 'NR==FNR {a[$2,$3]=$1;next} ($2 SUBSEP $3) in a {print a[$2,$3],$1,$2,$3}'  OFS=, file1 file2
In de bovenstaande code als ik de bestand1 en fie2 positie, dan krijg ik andere resultaten.
Ik kan niet achteraf de bestanden als gevolg van gegevens gevoeligheid.
Ik visuele controle van de bestanden, en ik zie geen speciale tekens of iets.
Is er een speciaal commando om dit te controleren.

Waarderen uw reactie.
  #6 (permalink)  
Old 04-22-2009
vgersh99's Avatar
vgersh99 vgersh99 is online now Forum Staff  
Moderator
  
 

Join Date: Feb 2005
Locatie: Boston, MA
Berichten: 5.122
Citaat:
Oorspronkelijk geplaatst door zenit View Post
Code:
nawk -F"," 'NR==FNR {a[$2,$3]=$1;next} ($2 SUBSEP $3) in a {print a[$2,$3],$1,$2,$3}'  OFS=, file1 file2
In de bovenstaande code als ik de bestand1 en fie2 positie, dan krijg ik andere resultaten.
Ik kan niet achteraf de bestanden als gevolg van gegevens gevoeligheid.
Ik visuele controle van de bestanden, en ik zie geen speciale tekens of iets.
Is er een speciaal commando om dit te controleren.

Waarderen uw reactie.
Patiënt: Doc, het doet echt pijn als ik dat doe dat!
Dokter: Dan niet doen dat!

De standpunten van de bestanden op de opdrachtregel is belangrijk voor het in kaart brengen van de velden van een bestand naar het andere. Kijk naar je bestanden 'velden - proberen om het verschil en kijkt naar de originele posting voor de mapping logica.
Succes.
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 08:20 PM.


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