The UNIX and Linux Forums  


Go Back   UNIX og Linux Forums > Top Forums > Shell programmering og Skripting
.
google unix.com



Shell programmering og Skripting Post spørsmål om ksh, csh, SH, Bash, Perl, PHP, SED, awk og ANDRE shell scripts og Shell skriptespråk her.

Mer UNIX og Linux Forum Emner Du kan finne nyttig
Tråd Tråd startet Forum Svar Siste innlegg
Script utpakking av feil data fra tekstfil jermaine4ever Shell programmering og Skripting 6 03-16-2009 12:18
Feil login NIS? Juterassee Sun Solaris 5 10-30-2008 11:08
login feil espace1000 UNIX for Dummies Spørsmål og svar 2 08-22-2008 07:48
Login Incorrect sydney2008 Red Hat 6 08-22-2008 05:57
Feil katalognavn jand102821 UNIX for Dummies Spørsmål og svar 1 06-19-2002 05:35

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 denne tråden Rate Thread Visningsmoduser
  #1 (permalink)  
Old 04-21-2009
Pinnacle pinnacle is offline
Registrert bruker
  
 

Bli Dato: april 2009
Innlegg: 182
Awk feil data.

Jeg bruker følgende kommando:


Code:
nawk -F"," 'NR==FNR {a[$2$3]=$1;next} a[$2$3] {print a[$2$3],$1,$2,$3}'  file1 file2

Jeg får 40 poster utgang.
Men når jeg importerer file1 og file2 i MS Access jeg får 140 poster.
Og jeg vet at 140 er riktig antall.

Setter pris på din hjelp til å korrigere ovennevnte script
  #2 (permalink)  
Old 04-21-2009
vgersh99's Avatar
vgersh99 vgersh99 is online now Forum Staff  
Moderator
  
 

Bli Date: Feb 2005
Sted: Boston, MA
Innlegg: 5130
Det vil definitivt hjelpe hvis du finner en mer detaljert beskrivelse av hva du prøver å oppnå med prøven datafiler og forventet produksjon.

Min krystall ballen er litt uklar, men:

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
Registrert bruker
  
 

Bli Dato: april 2009
Innlegg: 182
Sitat:
Originally Posted by vgersh99 View Post
Det vil definitivt hjelpe hvis du finner en mer detaljert beskrivelse av hva du prøver å oppnå med prøven datafiler og forventet produksjon.

Min krystall ballen er litt uklar, men:

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

Jeg har to filer
$ Head file1
zip, Fornavn, Etternavn
07.777, abc, def
22.584, dec, DLO
25.487, xyz, jkl
25.488, svak, kio

$ Head file2
Målet server database
SSN, Fornavn, Etternavn
123456789, abc, def
123456789, dec, DLO
123456789, xyz, jkl
123456789, svak, kio
ville Output:
SSN, zip, Fornavn, Etternavn


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 kamper er riktig jeg vet men begge bør gi 140 jeg dont vite hvorfor de gir forskjell.

Kan du vennligst forklare denne delen ($ 2 SUBSEP $ 3)
a [$ 2, $ 3] vi bruker, her fordi de er kommadelte inndatafil eller er den generelle regelen
Hvis jeg ikke bruker, så også jeg får samme resultat
  #4 (permalink)  
Old 04-21-2009
vgersh99's Avatar
vgersh99 vgersh99 is online now Forum Staff  
Moderator
  
 

Bli Date: Feb 2005
Sted: Boston, MA
Innlegg: 5130
Sitat:
Originally Posted by zenith View Post
vgersh99

Jeg har to filer
$ Head file1
zip, Fornavn, Etternavn
07.777, abc, def
22.584, dec, DLO
25.487, xyz, jkl
25.488, svak, kio

$ Head file2
Målet server database
SSN, Fornavn, Etternavn
123456789, abc, def
123456789, dec, DLO
123456789, xyz, jkl
123456789, svak, kio
ville Output:
SSN, zip, Fornavn, Etternavn


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 over 2 invocations er nøyaktig den samme. Jeg forstår ikke hvorfor du får forskjellige resultater.
Også jeg forstår ikke hvorfor du har en etterfølgende dobbelt anførselstegn (i rødt) i begge tilfelle?
Sitat:
Originally Posted by zenith
140 kamper er riktig jeg vet men begge bør gi 140 jeg dont vite hvorfor de gir forskjell.

Kan du vennligst forklare denne delen ($ 2 SUBSEP $ 3)
a [$ 2, $ 3] vi bruker, her fordi de er kommadelte inndatafil eller er den generelle regelen
Hvis jeg ikke bruker, så også jeg får samme resultat
Nei, det er ikke fordi filen er kommadelte. Du kan bygge din array indeksen bare ved concatenating med strengene ($ 2 $ 3) eller (som er bedre for videre bearbeiding) ved å gjøre dette:

Code:
a[$2,$3]

I forbindelse med array-indeksen bygningen, det "," er erstattet av awk interne variable SUBSEP. Hvis senere du bestemmer deg for å "splitte" indeksen (for å finne det deler) kan du dele av SUBSEP. Hvis du bare sammen strengen, kan du ikke rekonstruere indeksen til sin opprinnelige deler.

Opprinnelig postet skal gi ønsket resultat.
Gitt file1:

Code:
zip,FirstName,Lastname
07777,abc,def
22584,dec,dlo
25487,xyz,jkl
25488,dim,kio

og file2:

Code:
SSN,Firstname,LastName
123456789,abc,def
123456789,dec,dlo
123456789,xyz,jkl
123456789,dim,kio

kjører:

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

Resultater i:

Code:
123456789,07777,abc,def
123456789,22584,dec,dlo
123456789,25487,xyz,jkl
123456789,25488,dim,kio

Sjekk file1 og file2 - se om det er noen avvik og / eller innebygde mellomrom.

Også, dette er ikke en av de første forum innlegg og du har blitt bedt om i det siste: vennligst bruk BB Code-koder når du legger data eller kodeeksempler.
  #5 (permalink)  
Old 04-21-2009
Pinnacle pinnacle is offline
Registrert bruker
  
 

Bli Dato: april 2009
Innlegg: 182
Sitat:
Originally Posted by vgersh99 View Post
De over 2 invocations er nøyaktig den samme. Jeg forstår ikke hvorfor du får forskjellige resultater.
Også jeg forstår ikke hvorfor du har en etterfølgende dobbelt anførselstegn (i rødt) i begge tilfelle?

Nei, det er ikke fordi filen er kommadelte. Du kan bygge din array indeksen bare ved concatenating med strengene ($ 2 $ 3) eller (som er bedre for videre bearbeiding) ved å gjøre dette:

Code:
a[$2,$3]

I forbindelse med array-indeksen bygningen, det "," er erstattet av awk interne variable SUBSEP. Hvis senere du bestemmer deg for å "splitte" indeksen (for å finne det deler) kan du dele av SUBSEP. Hvis du bare sammen strengen, kan du ikke rekonstruere indeksen til sin opprinnelige deler.

Opprinnelig postet skal gi ønsket resultat.
Gitt file1:

Code:
zip,FirstName,Lastname
07777,abc,def
22584,dec,dlo
25487,xyz,jkl
25488,dim,kio

og file2:

Code:
SSN,Firstname,LastName
123456789,abc,def
123456789,dec,dlo
123456789,xyz,jkl
123456789,dim,kio

kjører:

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

Resultater i:

Code:
123456789,07777,abc,def
123456789,22584,dec,dlo
123456789,25487,xyz,jkl
123456789,25488,dim,kio

Sjekk file1 og file2 - se om det er noen avvik og / eller innebygde mellomrom.

Også, dette er ikke en av de første forum innlegg og du har blitt bedt om i det siste: vennligst bruk BB Code-koder når du legger data eller kodeeksempler.

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

I de ovennevnte koden hvis jeg slår file1 og fie2 posisjon så jeg får forskjellige resultater.
Jeg kan ikke legge inn filer på grunn data følsomhet.
Jeg visuelt kontrollert filer og jeg ser ingen spesielle tegn eller noe.
Er det en spesiell kommando for å bekrefte dette.

Takker for svar.
  #6 (permalink)  
Old 04-22-2009
vgersh99's Avatar
vgersh99 vgersh99 is online now Forum Staff  
Moderator
  
 

Bli Date: Feb 2005
Sted: Boston, MA
Innlegg: 5130
Sitat:
Originally Posted by zenith 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

I de ovennevnte koden hvis jeg slår file1 og fie2 posisjon så jeg får forskjellige resultater.
Jeg kan ikke legge inn filer på grunn data følsomhet.
Jeg visuelt kontrollert filer og jeg ser ingen spesielle tegn eller noe.
Er det en spesiell kommando for å bekrefte dette.

Takker for svar.
Patient: Doc, det gjør vondt når jeg gjør det!
Legen: Så ikke gjør det!

Stillingene av filene på kommandolinjen er viktig for kartlegging av felt fra en fil til den andre. Se på datafilene "felt - prøver å se forskjellen, og se på det opprinnelige oppslaget for kartlegging logikk.
Lykke til.
Closed Thread

Hugseliste

Thread Tools Søk i denne tråden
Søk i denne tråden:

Avansert søk
Visningsmoduser Ranger denne tråden
Ranger denne tråden:

Innleggsaktivitet Regler
Du kanskje ikke poste nye tråder
Du kanskje ikke poste svar
Du kanskje ikke post vedlegg
Du kanskje ikke redigere innleggene dine

BB-kode er
Smilefjes er
[IMG] koden
HTML-koden Av
Pingbacks er
Refbacks er




Alle klokkeslett er GMT -4. Nå er klokken 09:13.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Language Translations Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. All Rights Reserved.Ad Management by RedTyger

Content Relevant nettadresser av vBSEO 3.2.0