![]() |
|
|
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 |
| egrep syntaks spørgsmål | DKNUCKLES | Shell Programmering og Scripting | 1 | 11-18-2007 04:46 PM |
| Simpelt Awk Spørgsmål: Hvis Syntaks | natdeamer | Shell Programmering og Scripting | 1 | 09-10-2007 01:53 PM |
| endnu et awk område syntaks spørgsmål | prkfriryce | Shell Programmering og Scripting | 4 | 03-22-2007 01:13 PM |
| C-shell: variable syntaks spørgsmål | alex_5161 | Sun Solaris | 0 | 01-30-2007 02:43 PM |
| Spørgsmål: ikke-rekursiv finde syntaks | alexkav | UNIX for dummyer Spørgsmål & svar | 6 | 03-10-2005 07:46 AM |
![]() |
|
|
LinkBack | Thread Tools | Søg denne tråd | Rate Thread | Display Modes |
|
|
|
||||
|
awk syntaks spørgsmål
Hej der kunne nogen forklare, hvad der sker i de følgende funktion / erklæring for mig, im bare lidt forvirret
kode \u003d 'BEGIN (FS \u003d","} ( printf ( "%-11s,% s% s% s,% 07.2f,% 14s,%-3s \ n", $ 1, substr ($ 2,9,2), substr ($ 2,6,2), substr ( $ 2,3,2), $ 9, $ 10, $ 12) ) Denne funktion kaldes senere i scriptet ved hjælp af awk "$ kode" nogen vejledning ville blive værdsat meget skål |
|
|||||
|
kode \u003d 'BEGIN (FS \u003d","}
( printf ( "%-11s,% s% s% s,% 07.2f,% 14s,%-3s \ n", $ 1, substr ($ 2,9,2), substr ($ 2,6,2), substr ( $ 2,3,2), $ 9, $ 10, $ 12) ) Ret, for det første feltseparator er indstillet til "," hvilket betyder, at koden forventer en CSV-input-fil (kommaseparerede værdier). Derefter data fra hver record er outputted, formateret med printf. Du kan se, at hver formatering karakter indledes med en% symbol. %-11'ere betyder udskrive en streng venstre begrundet i en 11 karakter bredt område. Den% s% s% s betyder udskrive tre strenge. % 07.2f betyder en 7-cifret bredt felt med to decimaler (floating point-tal). % 14s betyder 14 char bred højrejusteret område osv. \ n er en ny linje. Så, alle de forskellige områder er substitueret i stedet for% s, osv. Et simpelt eksempel, printf ( "% s-% s \ n", $ 1, $ 2) ville forårsage det første felt, en bindestreg, og derefter det andet felt, der skal produktionen efterfulgt af en ny linje. substr (string, start, numchars) - f.eks substr ($ 2,9,2), vil denne tilbagevenden 2 karakterer fra 9. karakter af det andet felt af posten. Hvis du har manualen side på dit system (mand awk, men manden gawk er bedre), vil det sandsynligvis forklare, at meget klarere, end jeg har! Du bør nok tjekke denne ud http://www.gnu.org/software/gawk/manual/gawk.html hvis du bruger GNU awk. Skål ZB |
![]() |
| Bogmærker |
| Thread Tools | Søg denne tråd |
| Display Modes | Bedøm denne tråd |
|
|