![]() |
|
|
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 |
| Multiple feltseparatorer i awk? (Første et mellemrum, og derefter et kolon) | doubleminus | UNIX for dummyer Spørgsmål & svar | 3 | 04-27-2008 04:28 PM |
| Jeg har brug for hjælp tælle felter og feltseparatorer bruger Nawk | scrappycc | Shell Programmering og Scripting | 3 | 02-06-2008 11:47 PM |
| kan du omdirigere flere filer for input? | Matrix_Prime | UNIX for dummyer Spørgsmål & svar | 4 | 02-27-2005 07:07 PM |
| Awk Multiple feltseparatorer | Tonka52 | Shell Programmering og Scripting | 7 | 04-07-2004 10:37 PM |
| Output Multiple Field fra databasefil | Dennz | UNIX for dummyer Spørgsmål & svar | 3 | 09-01-2003 01:41 PM |
|
|
LinkBack | Thread Tools | Søg denne tråd | Rate Thread | Display Modes |
|
||||
|
Jeg så et par indlæg her henvisninger, hvordan man håndterer mere end én indgang feltseparator i awk. Jeg regnede jeg ville fortælle, hvordan jeg (kun!) Regnet ud, hvordan du aktiverer denne linje i en logfil:
90000000000000000000010001 navn D0.90000000000103787900010001QF840840916070000007085814Y216254 @ D1111111111111111 \u003d 1107xxxxxxxxxxxxxxx x919MENCHIES i dette format: 90000000000000000000010001, navn, 840840916070000007085814Y216654, 1111111111111111,1107,919 MENCHIES Jeg har en hel script, da dette er blot et skridt i en proces med at gøre logger ind nyttige oplysninger, men her ovre den relevante del. # Forfatter: kinksville # Dato: April 24, 2008 # Revideret: April 24, 2008 # Revision: Revision 1,00 # Andre filer: cclookup.s, cclookup.rep # Changelog: # April 24, 2008: Første etablering af scriptet. # # End changelog. BEGIN ( FS \u003d "[\. QF \ @ D \u003d x] +" OFS \u003d "," ) # Første iteration af @ D søgning, fraregnet den. karakter og indsætte en OFS. / \ @ D / (# Søg efter hvilken som helst linje, der indeholder strengen @ D report2 \u003d "cclookup.rep2" # define report2 variabel. rapport \u003d "cclookup.rep" # define rapport variabel. num_cclookup + +; # Få flere auth anmodninger. print $ 1, $ 2, $ 5, $ 6, $ 7, $ 8> rapport; print $ 0> report2; ) # End of the @ D søgning. Det centrale er, at awk vil acceptere et regulært udtryk som fil separator. Dette regexp FS \u003d "[\. QF \ @ D \u003d x] +" matcher rum, den. strengen QF, strengen @ D, i \u003d, og karakter x. Den + efter den efterfølgende beslaget er nøglen, da dette giver mulighed for 1 eller flere forekomster af nogen af de tegn, der matches af regexp. Det betyder, at x og xxxxxx er begge behandles som et enkelt felt separator. Jeg har stadig brug for at arbejde på produktionen, fordi nu har jeg brug for at trimme det navn fra slutningen af det sidste felt. Desværre er nummeret i det sidste felt kan variere alt fra 9999999 til 1, og det er den del, som jeg ønsker at bevare. Måske en [^ 0-9] + udtryk? |
| Bogmærker |
| Tags |
| awk, awk trim, trim, trim awk |
| Thread Tools | Søg denne tråd |
| Display Modes | Bedøm denne tråd |
|
|