![]() |
Hei og Velkommen fra USA til UNIX og Linux Forums! Takk for besøket og Delta i vårt globale samfunn.
|
|
google unix.com
|
|||||||
| Forums | Registrer | Forum Rules | Lenker | Album | FAQ | Medlemsliste | Kalender | Søke | Dagens innlegg | Marker forumene som lest |
| 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 |
| Awking! Utskrift desimalverdi utgang er truffet | divzz | Shell programmering og Skripting | 4 | 05-28-2008 08:02 |
| Splitting store XML-filer i fixsized wellformed deler | Malapha | Shell programmering og Skripting | 0 | 03-17-2008 11:35 |
| grepping mange verdier fra samme filene | Sreejith_VK | Shell programmering og Skripting | 2 | 03-15-2008 08:41 |
| grepping linjer av filer | Mariner | UNIX for Advanced & ekspertbrukere | 2 | 09-24-2004 08:12 |
| diff 2 filer; output diff står til 3. fil | blt123 | Shell programmering og Skripting | 2 | 05-28-2002 11:29 |
![]() |
|
|
LinkBack | Thread Tools | Søk i denne tråden | Rate Thread | Visningsmoduser |
|
|
|
||||
|
awking og grepping deler av filer: the 'super diff'
Ok ----
Her er hva jeg må gjøre. Jeg har to filer. Jeg trenger å sammenligne de to filer, for eksempel med diff kommandoen. Jeg legger FilNy til FILEOLD Hvis feltene $ 1, $ 2, $ 5 og 6 er den samme, så jeg vil ikke legge FilNy poster til FILEOLD. Hvis de ikke er det, og deretter legge til linjer. Er dette mulig i UNIX scripting verden? Det synes som om dette kan gjøres på AIX. Jeg har også Perl som en siste utvei. Leter hardt, lurte på om noen har gjort noe sånt før. ![]() |
|
||||
|
Har noen vil ta en sprekk på dette?
Min trege hjernen er bare ikke forstå. Hvis for eksempel: awk 'BEGIN (FS \u003d OFS \u003d","} NR \u003d\u003d FNR (a [$ 1] \u003d $ 0; neste) a [$ 1] ($ 0 \u003d $ 0 RS a [$ 1]) (print) 'file2 file1 Legger til en linje til file1 hvis det første feltet samsvarer i begge filer. Hvordan kan du bare skrive ut linje hvis si fields1, 2, 5 og 6 matche både filer? Og selvfølgelig, jeg måtte reversere at (dvs. bare legge linjene til file1 hvis felt 1, 2, 5 og 6 er IKKE Matchet mellom file1 og file2) Tydeligvis første FNR linje file2, a [$ 1] blir det første feltet. Den andre linjen deretter Kmp a [$ 1] og føyer til et posten til utgangen av file1. ![]() Takk mye for hjelp. |
|
||||
|
File1:
---------------------------- epler, pærer, bananer, appelsiner, grapefrukt, vannmelon, ananas epples, pærer, bananer, appelsiner, grapefrukt, vannmelon, ananas epples, paars, bananer, appelsiner, grapefrukt, vannmelon, ananas graby, epples, bananer, appelsiner, grapefrukt, vannmelon, ananas File2: ---------------------------- pearsrs, epler, bananers, orangas, grapefrukt, graby, pineapples epler, pærer, bandanas, orangatangs, grapefrukt, vannmelon, wineapple Wanted output: (File1: tilføyd: bare legge postene når feltene 1, 2, 5 og 6 stemmer ikke) ----------------------------- epler, pærer, bananer, appelsiner, grapefrukt, vannmelon, ananas epples, pærer, bananer, appelsiner, grapefrukt, vannmelon, ananas epples, paars, bananer, appelsiner, grapefrukt, vannmelon, ananas graby, epples, bananer, appelsiner, grapefrukt, vannmelon, ananas pearsrs, epler, bananers, orangas, grapefrukt, graby, pineapples |
|
||||
|
Utgangspunktet hva dette er er en logfile som varsler fra et program.
Oppføringene bli kastet inn i en fil kontinuerlig. Men enkelte oppføringer som har samme dato transaksjonen ID, location, varsling kode og blir kastet i igjen og igjen (som inntil problemet er løst) Den awk filteret er å lage en 2dre fil som bare legger til nye meldinger om de ikke er samme dato, ID, location, kode og kjøre på en kontinuerlig basis filtrere disse ut. |
|
||||
|
Takk
Men noe er forkjært. Ok, hvis jeg ikke gjør: nawk-f jeffawk file2 file1 ------------------------ epler, pærer, bananer, appelsiner, grapefrukt, vannmelon, ananas epples, pærer, bananer, appelsiner, grapefrukt, vannmelon, ananas epples, paars, bananer, appelsiner, grapefrukt, vannmelon, ananas graby, epples, bananer, appelsiner, grapefrukt, vannmelon, ananas Dette er egentlig en katt av file1. Hvis jeg gjøre: nawk-f jeffawk file1 file2 Jeg får følgende: ----------------------- pearsrs, epler, bananers, orangas, grapefrukt, graby, pineapples epler, pærer, bananer, appelsiner, grapefrukt, vannmelon, ananas Den første linjen, pearsrs', som er rett på pengene. Men dette er egentlig en katt av file2. Ikke sikker ? ? ? ? Sist endret av jeffpas; 07-17-2008 på 04:19.. |
![]() |
| Hugseliste |
| Tags |
| awk, grep |
| Thread Tools | Søk i denne tråden |
| Visningsmoduser | Ranger denne tråden |
|
|