![]() |
Hej och välkommen från USA till UNIX och Linux Forum! Tack för ditt besök och gå med i vår globala gemenskapen.
|
|
google unix.com
|
|||||||
| Forum | Registrera | Forum Regler | Länkar | Album | FAQ | Medlemslista | Kalender | Söka | Dagens inlägg | Markera forum som lästa |
| Shell-programmering och Skript Post frågor om ksh, CSH, SH, bash, PERL, PHP, sed, awk och andra skalskript och skal skriptspråk här. |
Mer UNIX och Linux Forum Ämnen Du kan hitta Helpful
|
||||
| Tråd | Thread Starter | Forum | Svar | Senaste Inlägg |
| egrep syntax fråga | DKNUCKLES | Shell-programmering och Skript | 1 | 11-18-2007 04:46 |
| Enkel awk Fråga: Om Syntax | natdeamer | Shell-programmering och Skript | 1 | 09-10-2007 12:53 |
| ännu en awk område syntax fråga | prkfriryce | Shell-programmering och Skript | 4 | 03-22-2007 01:13 |
| C-skal: variable syntax fråga | alex_5161 | Sun Solaris | 0 | 01-30-2007 02:43 |
| Fråga: icke-rekursiva hitta syntax | alexkav | UNIX for Dummies Frågor & Svar | 6 | 03-10-2005 07:46 |
![]() |
|
|
LinkBack | Thread Tools | Sök i denna tråd | Rate Thread | Visningslägen |
|
|
|
||||
|
awk syntax fråga
Hej kan någon förklara vad som händer i följande funktion / uppgift för mig, im just lite förvirrad
kod \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) ) Denna funktion kallas senare i skriptet genom att använda awk "$ code" någon ledning skulle bli mycket uppskattat skål |
|
|||||
|
kod \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) ) Rätt, dels är fältet Separator inställd på "," vilket innebär att koden väntar en CSV indatafil (kommaseparerade värden). Sedan är data från varje post outputted formaterade med printf. Du kan se att varje formatering karaktär föregås av en% symbol. %-11s betyder skriva ut en sträng kvar motiverat med en 11 tecken brett fält. % S% s% s hjälp Skriv ut tre strängar. % 07.2f: ett 7-siffrigt brett fält med två decimaler (flyttal). % 14s betyder 14 char bred högerjusterad området etc. \ n är ett nyrad. Sedan är alla olika områden som ersätts i stället för% s, etc. Ett enkelt exempel, printf ( "% s-% s \ n", $ 1, $ 2) skulle leda till det första fältet, ett bindestreck och sedan det andra fältet som ska användas följas av en newline. substr (string, start, numchars) - t.ex. substr ($ 2,9,2), kommer denna återgång 2 tecken från den 9: e tecknet i det andra fältet i posten. Om du har manualen sida på ditt system (man awk, men människan gawk är bättre), kommer det förmodligen att förklara mycket tydligare än jag har! Du borde nog kolla in det här http://www.gnu.org/software/gawk/manual/gawk.html Om du använder GNU awk. Skål ZB |