![]() |
|
|
google unix.com
|
|||||||
| Forums | Registrer | Forum Regler | Links | Albums | FAQ | Members List | Kalender | Søgning | Dagens Stillinger | Mark Forums Read |
| Shell Programmering og Scripting Post spørgsmål om ksh, CSH, SH, Bash, Perl, PHP, SED, AWK og ANDRE shell scripts og Shell scriptsprog her. |
Mere UNIX og Linux Forum Emner du måske kan finde Helpful
|
||||
| Tråd | Thread Starter | Forum | Svar | Last Post |
| Script udvinding af forkerte data fra tekstfil | jermaine4ever | Shell Programmering og Scripting | 6 | 03-16-2009 12:18 PM |
| Ukorrekt login NIS? | Juterassee | Sun Solaris | 5 | 10-30-2008 11:08 AM |
| login ukorrekt | espace1000 | UNIX for dummyer Spørgsmål & svar | 2 | 08-22-2008 07:48 AM |
| Login Incorrect | sydney2008 | Red Hat | 6 | 08-22-2008 05:57 AM |
| Forkert mappenavn | jand102821 | UNIX for dummyer Spørgsmål & svar | 1 | 06-19-2002 05:35 PM |
![]() |
|
|
LinkBack | Thread Tools | Søg denne tråd | Rate Thread | Display Modes |
|
|
|
||||
|
Awk ukorrekte data.
Jeg bruger 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 optegnelser output. Men når jeg importere file1 og fil2 i MS Access, jeg får 140 registreringer. Og jeg ved 140 er korrekt tæller. Sætter pris på din hjælp til at korrigere det ovenstående script |
|
||||
|
Citat:
Jeg har to filer $ Hovedet file1 zip, Fornavn, Efternavn 07.777, abc, def 22.584, dec, DLO 25.487, xyz, jkl 25.488, dim, kio $ Hovedet fil2 Målet server database SSN, Fornavn, Efternavn 123456789, abc, def 123456789, dec, DLO 123456789, xyz, jkl 123456789, dim, kio ønskede Output: SSN, zip, Fornavn, Efternavn 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 kampe er korrekt Jeg ved, men begge skal give 140 i dont know, hvorfor dets give forskel. Kan du venligst forklare denne del ($ 2 SUBSEP $ 3) a [$ 2, $ 3] vi bruger her, fordi dets er kommasepareret inddatafilen eller er den generelle regel Hvis jeg dont brug, så også jeg får samme resultat |
|
|||||
|
Citat:
Også jeg ikke forstå, hvorfor du har en efterfølgende dobbelt anførselstegn (i rødt) i begge tilfælde? Citat:
Code:
a[$2,$3] I forbindelse med array indeks bygning, det "," erstattes af awk interne variable SUBSEP. Hvis senere om du beslutter dig for at "split" indekset (for at finde den del) kan du fordelt på SUBSEP. Hvis du blot concatenate strengen, kan du ikke genopbygge indekset til sin originale dele. Den oprindeligt indsendt opløsning skal give dig det ønskede resultat. Da file1: Code:
zip,FirstName,Lastname 07777,abc,def 22584,dec,dlo 25487,xyz,jkl 25488,dim,kio og fil2: Code:
SSN,Firstname,LastName 123456789,abc,def 123456789,dec,dlo 123456789,xyz,jkl 123456789,dim,kio kø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
Resulterer i: Code:
123456789,07777,abc,def 123456789,22584,dec,dlo 123456789,25487,xyz,jkl 123456789,25488,dim,kio Tjek din file1 og fil2 - se om der er eventuelle uoverensstemmelser og / eller indlejret rum. Også, dette er IKKE en af dine første forum stillinger og du er blevet bedt om i løbet af de sidste: brug venligst BB Code tags når udstationering data eller kode prøver. |
|
||||
|
Citat:
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 ovenstående kode, hvis jeg skifter file1 og fie2 holdning så jeg får forskellige resultater. Jeg kan ikke sende de filer på grund af data følsomhed. Jeg visuelt kontrolleres de filer, og jeg ser ingen specialtegn eller noget. Er der en kommando til at verificere dette. Sætter pris på dit svar. |
|
|||||
|
Citat:
Læge: Så ikke gør som! De holdninger, som filerne på kommandolinjen er vigtigt for kortlægning af de områder, fra en fil til den anden. Kig på dine data files' felter - prøv at se forskellen og se på din oprindelige udstationering for konverteringspolitikken logik. Held og lykke. |
![]() |
| Bogmærker |
| Thread Tools | Søg denne tråd |
| Display Modes | Bedøm denne tråd |
|
|