|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T g
Length: 81214 (0x13d3e) Types: TextFile Names: »gawk.1.ps«
└─⟦9ae75bfbd⟧ Bits:30007242 EUUGD3: Starter Kit └─⟦40c5e046b⟧ »EurOpenD3/gnu/gawk/gawk.ps.tar.Z« └─⟦ba8e0fbba⟧ └─⟦this⟧ »gawk-postscript/gawk.1.ps«
%!PS-Adobe-1.0 %%Creator: emoryu1:arnold (Arnold D. Robbins,,,) %%Title: stdin (ditroff) %%CreationDate: Tue Oct 24 12:52:45 1989 %%EndComments % Start of psdit.pro -- prolog for ditroff translator % Copyright (c) 1985,1987 Adobe Systems Incorporated. All Rights Reserved. % GOVERNMENT END USERS: See Notice file in TranScript library directory % -- probably /usr/lib/ps/Notice % RCS: $Header: psdit.pro,v 2.2 87/11/17 16:40:42 byron Rel $ /$DITroff 140 dict def $DITroff begin /fontnum 1 def /fontsize 10 def /fontheight 10 def /fontslant 0 def /xi {0 72 11 mul translate 72 resolution div dup neg scale 0 0 moveto /fontnum 1 def /fontsize 10 def /fontheight 10 def /fontslant 0 def F /pagesave save def}def /PB{save /psv exch def currentpoint translate resolution 72 div dup neg scale 0 0 moveto}def /PE{psv restore}def /m1 matrix def /m2 matrix def /m3 matrix def /oldmat matrix def /tan{dup sin exch cos div}bind def /point{resolution 72 div mul}bind def /dround {transform round exch round exch itransform}bind def /xT{/devname exch def}def /xr{/mh exch def /my exch def /resolution exch def}def /xp{}def /xs{docsave restore end}def /xt{}def /xf{/fontname exch def /slotno exch def fontnames slotno get fontname eq not {fonts slotno fontname findfont put fontnames slotno fontname put}if}def /xH{/fontheight exch def F}bind def /xS{/fontslant exch def F}bind def /s{/fontsize exch def /fontheight fontsize def F}bind def /f{/fontnum exch def F}bind def /F{fontheight 0 le {/fontheight fontsize def}if fonts fontnum get fontsize point 0 0 fontheight point neg 0 0 m1 astore fontslant 0 ne{1 0 fontslant tan 1 0 0 m2 astore m3 concatmatrix}if makefont setfont .04 fontsize point mul 0 dround pop setlinewidth}bind def /X{exch currentpoint exch pop moveto show}bind def /N{3 1 roll moveto show}bind def /Y{exch currentpoint pop exch moveto show}bind def /S /show load def /ditpush{}def/ditpop{}def /AX{3 -1 roll currentpoint exch pop moveto 0 exch ashow}bind def /AN{4 2 roll moveto 0 exch ashow}bind def /AY{3 -1 roll currentpoint pop exch moveto 0 exch ashow}bind def /AS{0 exch ashow}bind def /MX{currentpoint exch pop moveto}bind def /MY{currentpoint pop exch moveto}bind def /MXY /moveto load def /cb{pop}def % action on unknown char -- nothing for now /n{}def/w{}def /p{pop showpage pagesave restore /pagesave save def}def /abspoint{currentpoint exch pop add exch currentpoint pop add exch}def /dstroke{currentpoint stroke moveto}bind def /Dl{2 copy gsave rlineto stroke grestore rmoveto}bind def /arcellipse{oldmat currentmatrix pop currentpoint translate 1 diamv diamh div scale /rad diamh 2 div def rad 0 rad -180 180 arc oldmat setmatrix}def /Dc{gsave dup /diamv exch def /diamh exch def arcellipse dstroke grestore diamh 0 rmoveto}def /De{gsave /diamv exch def /diamh exch def arcellipse dstroke grestore diamh 0 rmoveto}def /Da{currentpoint /by exch def /bx exch def /fy exch def /fx exch def /cy exch def /cx exch def /rad cx cx mul cy cy mul add sqrt def /ang1 cy neg cx neg atan def /ang2 fy fx atan def cx bx add cy by add 2 copy rad ang1 ang2 arcn stroke exch fx add exch fy add moveto}def /Barray 200 array def % 200 values in a wiggle /D~{mark}def /D~~{counttomark Barray exch 0 exch getinterval astore /Bcontrol exch def pop /Blen Bcontrol length def Blen 4 ge Blen 2 mod 0 eq and {Bcontrol 0 get Bcontrol 1 get abspoint /Ycont exch def /Xcont exch def Bcontrol 0 2 copy get 2 mul put Bcontrol 1 2 copy get 2 mul put Bcontrol Blen 2 sub 2 copy get 2 mul put Bcontrol Blen 1 sub 2 copy get 2 mul put /Ybi /Xbi currentpoint 3 1 roll def def 0 2 Blen 4 sub {/i exch def Bcontrol i get 3 div Bcontrol i 1 add get 3 div Bcontrol i get 3 mul Bcontrol i 2 add get add 6 div Bcontrol i 1 add get 3 mul Bcontrol i 3 add get add 6 div /Xbi Xcont Bcontrol i 2 add get 2 div add def /Ybi Ycont Bcontrol i 3 add get 2 div add def /Xcont Xcont Bcontrol i 2 add get add def /Ycont Ycont Bcontrol i 3 add get add def Xbi currentpoint pop sub Ybi currentpoint exch pop sub rcurveto }for dstroke}if}def end /ditstart{$DITroff begin /nfonts 60 def % NFONTS makedev/ditroff dependent! /fonts[nfonts{0}repeat]def /fontnames[nfonts{()}repeat]def /docsave save def }def % character outcalls /oc {/pswid exch def /cc exch def /name exch def /ditwid pswid fontsize mul resolution mul 72000 div def /ditsiz fontsize resolution mul 72 div def ocprocs name known{ocprocs name get exec}{name cb} ifelse}def /fractm [.65 0 0 .6 0 0] def /fraction {/fden exch def /fnum exch def gsave /cf currentfont def cf fractm makefont setfont 0 .3 dm 2 copy neg rmoveto fnum show rmoveto currentfont cf setfont(\244)show setfont fden show grestore ditwid 0 rmoveto} def /oce {grestore ditwid 0 rmoveto}def /dm {ditsiz mul}def /ocprocs 50 dict def ocprocs begin (14){(1)(4)fraction}def (12){(1)(2)fraction}def (34){(3)(4)fraction}def (13){(1)(3)fraction}def (23){(2)(3)fraction}def (18){(1)(8)fraction}def (38){(3)(8)fraction}def (58){(5)(8)fraction}def (78){(7)(8)fraction}def (sr){gsave .05 dm .16 dm rmoveto(\326)show oce}def (is){gsave 0 .15 dm rmoveto(\362)show oce}def (->){gsave 0 .02 dm rmoveto(\256)show oce}def (<-){gsave 0 .02 dm rmoveto(\254)show oce}def (==){gsave 0 .05 dm rmoveto(\272)show oce}def end % DIThacks fonts for some special chars 50 dict dup begin /FontType 3 def /FontName /DIThacks def /FontMatrix [.001 0.0 0.0 .001 0.0 0.0] def /FontBBox [-220 -280 900 900] def% a lie but ... /Encoding 256 array def 0 1 255{Encoding exch /.notdef put}for Encoding dup 8#040/space put %space dup 8#110/rc put %right ceil dup 8#111/lt put %left top curl dup 8#112/bv put %bold vert dup 8#113/lk put %left mid curl dup 8#114/lb put %left bot curl dup 8#115/rt put %right top curl dup 8#116/rk put %right mid curl dup 8#117/rb put %right bot curl dup 8#120/rf put %right floor dup 8#121/lf put %left floor dup 8#122/lc put %left ceil dup 8#140/sq put %square dup 8#141/bx put %box dup 8#142/ci put %circle dup 8#143/br put %box rule dup 8#144/rn put %root extender dup 8#145/vr put %vertical rule dup 8#146/ob put %outline bullet dup 8#147/bu put %bullet dup 8#150/ru put %rule dup 8#151/ul put %underline pop /DITfd 100 dict def /BuildChar{0 begin /cc exch def /fd exch def /charname fd /Encoding get cc get def /charwid fd /Metrics get charname get def /charproc fd /CharProcs get charname get def charwid 0 fd /FontBBox get aload pop setcachedevice 40 setlinewidth newpath 0 0 moveto gsave charproc grestore end}def /BuildChar load 0 DITfd put %/UniqueID 5 def /CharProcs 50 dict def CharProcs begin /space{}def /.notdef{}def /ru{500 0 rls}def /rn{0 750 moveto 500 0 rls}def /vr{20 800 moveto 0 -770 rls}def /bv{20 800 moveto 0 -1000 rls}def /br{20 770 moveto 0 -1040 rls}def /ul{0 -250 moveto 500 0 rls}def /ob{200 250 rmoveto currentpoint newpath 200 0 360 arc closepath stroke}def /bu{200 250 rmoveto currentpoint newpath 200 0 360 arc closepath fill}def /sq{80 0 rmoveto currentpoint dround newpath moveto 640 0 rlineto 0 640 rlineto -640 0 rlineto closepath stroke}def /bx{80 0 rmoveto currentpoint dround newpath moveto 640 0 rlineto 0 640 rlineto -640 0 rlineto closepath fill}def /ci{355 333 rmoveto currentpoint newpath 333 0 360 arc 50 setlinewidth stroke}def /lt{20 -200 moveto 0 550 rlineto currx 800 2cx s4 add exch s4 a4p stroke}def /lb{20 800 moveto 0 -550 rlineto currx -200 2cx s4 add exch s4 a4p stroke}def /rt{20 -200 moveto 0 550 rlineto currx 800 2cx s4 sub exch s4 a4p stroke}def /rb{20 800 moveto 0 -500 rlineto currx -200 2cx s4 sub exch s4 a4p stroke}def /lk{20 800 moveto 20 300 -280 300 s4 arcto pop pop 1000 sub currentpoint stroke moveto 20 300 4 2 roll s4 a4p 20 -200 lineto stroke}def /rk{20 800 moveto 20 300 320 300 s4 arcto pop pop 1000 sub currentpoint stroke moveto 20 300 4 2 roll s4 a4p 20 -200 lineto stroke}def /lf{20 800 moveto 0 -1000 rlineto s4 0 rls}def /rf{20 800 moveto 0 -1000 rlineto s4 neg 0 rls}def /lc{20 -200 moveto 0 1000 rlineto s4 0 rls}def /rc{20 -200 moveto 0 1000 rlineto s4 neg 0 rls}def end /Metrics 50 dict def Metrics begin /.notdef 0 def /space 500 def /ru 500 def /br 0 def /lt 250 def /lb 250 def /rt 250 def /rb 250 def /lk 250 def /rk 250 def /rc 250 def /lc 250 def /rf 250 def /lf 250 def /bv 250 def /ob 350 def /bu 350 def /ci 750 def /bx 750 def /sq 750 def /rn 500 def /ul 500 def /vr 0 def end DITfd begin /s2 500 def /s4 250 def /s3 333 def /a4p{arcto pop pop pop pop}def /2cx{2 copy exch}def /rls{rlineto stroke}def /currx{currentpoint pop}def /dround{transform round exch round exch itransform} def end end /DIThacks exch definefont pop ditstart (psc)xT 576 1 1 xr 1(Times-Roman)xf 1 f 2(Times-Italic)xf 2 f 3(Times-Bold)xf 3 f 4(Times-BoldItalic)xf 4 f 5(Helvetica)xf 5 f 6(Helvetica-Bold)xf 6 f 7(Courier)xf 7 f 8(Courier-Bold)xf 8 f 9(Symbol)xf 9 f 10(DIThacks)xf 10 f 10 s 1 f xi %%EndProlog %%Page: 1 1 10 s 0 xH 0 xS 1 f 338 384(GAWK)N 601(\()X 641(1)X 694(\))X 1852(USER)X 2076(COMMANDS)X 3699(GAWK)X 3962(\()X 4002(1)X 4055(\))X 3 f 9 s 338 768(NAME)N 1 f 10 s 626 864(gawk)N 9 f 820(-)X 1 f 884(pattern)X 1127(scanning)X 1432(and)X 1568(processing)X 1931(language)X 3 f 9 s 338 998(SYNOPSIS)N 10 s 626 1094(gawk)N 1 f 828([)X 3 f 9 f 875(-)X 877(-)X 3 f 921(a)X 1 f 981(])X 1028([)X 3 f 9 f 1075(-)X 1077(-)X 3 f 1121(e)X 1 f 1177(])X 1224([)X 3 f 9 f 1271(-)X 1273(-)X 3 f 1317(c)X 1 f 1373(])X 1420([)X 3 f 9 f 1467(-)X 1469(-)X 3 f 1513(C)X 1 f 1591(])X 1638([)X 3 f 9 f 1685(-)X 1687(-)X 3 f 1731(V)X 1 f 1809(])X 1856([)X 3 f 9 f 1903(-)X 1905(-)X 3 f 1949(F)X 2 f 2004(fs)X 1 f 2077(])X 2124([)X 3 f 9 f 2171(-)X 2173(-)X 3 f 2217(v)X 2 f 2277(var)X 1 f 2390(=)X 2 f 2435(val)X 1 f 2553(])X 3 f 9 f 2600(-)X 2602(-)X 3 f 2646(f)X 2 f 2693(program-\256le)X 1 f 3118([)X 3 f 9 f 3165(-)X 3167(-)X 3217(-)X 3219(-)X 1 f 3283(])X 3330(\256le)X 3452(.)X 3478(.)X 3504(.)X 3 f 626 1190(gawk)N 1 f 828([)X 3 f 9 f 875(-)X 877(-)X 3 f 921(a)X 1 f 981(])X 1028([)X 3 f 9 f 1075(-)X 1077(-)X 3 f 1121(e)X 1 f 1177(])X 1224([)X 3 f 9 f 1271(-)X 1273(-)X 3 f 1317(c)X 1 f 1373(])X 1420([)X 3 f 9 f 1467(-)X 1469(-)X 3 f 1513(C)X 1 f 1591(])X 1638([)X 3 f 9 f 1685(-)X 1687(-)X 3 f 1731(V)X 1 f 1809(])X 1856([)X 3 f 9 f 1903(-)X 1905(-)X 3 f 1949(F)X 2 f 2004(fs)X 1 f 2077(])X 2124([)X 3 f 9 f 2171(-)X 2173(-)X 3 f 2217(v)X 2 f 2277(var)X 1 f 2390(=)X 2 f 2435(val)X 1 f 2553(])X 2600([)X 3 f 9 f 2647(-)X 2649(-)X 2699(-)X 2701(-)X 1 f 2765(])X 2 f 2812(program-text)X 1 f 3255(\256le)X 3377(.)X 3403(.)X 3429(.)X 3 f 9 s 338 1324(DESCRIPTION)N 2 f 10 s 626 1420(Gawk)N 1 f 850(is)X 940(the)X 1075(GNU)X 1286(Project's)X 1608(implementation)X 2147(of)X 2251(the)X 2386(AWK)X 2615(programming)X 3088(language.)X 3456(It)X 3543(conforms)X 3884(to)X 3984(the)X 626 1516(de\256nition)N 958(and)X 1100(description)X 1482(of)X 1575(the)X 1699(language)X 2015(in)X 2 f 2103(The)X 2249(AWK)X 2444(Programming)X 2919(Language)X 1 f 3245(,)X 3291(by)X 3397(Aho,)X 3581(Kernighan,)X 3966(and)X 626 1612(Weinberger,)N 1046(with)X 1208(the)X 1326(additional)X 1666(features)X 1941(de\256ned)X 2197(in)X 2279(the)X 2397(System)X 2652(V)X 2730(Release)X 3000(4)X 3060(version)X 3316(of)X 9 s 3401(UNIX)X 2 f 10 s 3601(awk)X 1 f 3736(,)X 3776(and)X 3913(some)X 626 1708(GNU-speci\256c)N 1092(extensions.)X 626 1842(The)N 780(command)X 1125(line)X 1274(consists)X 1556(of)X 1652(options)X 1916(to)X 2 f 2007(gawk)X 1 f 2205(itself,)X 2414(the)X 2541(AWK)X 2762(program)X 3064(text)X 3214(\(if)X 3320(not)X 3452(supplied)X 3753(via)X 3881(the)X 3 f 9 f 4009(-)X 4011(-)X 3 f 4055(f)X 1 f 626 1938(option\),)N 897(and)X 1033(values)X 1258(to)X 1340(be)X 1436(made)X 1630(available)X 1940(in)X 2022(the)X 3 f 2140(ARGC)X 1 f 2396(and)X 3 f 2532(ARGV)X 1 f 2788(pre-de\256ned)X 3174(AWK)X 3386(variables.)X 2 f 626 2072(Gawk)N 1 f 851(accepts)X 1126(the)X 1262(following)X 1611(options,)X 1904(which)X 2138(should)X 2389(be)X 2503(available)X 2832(on)X 2951(any)X 3106(implementation)X 3647(of)X 3753(the)X 3890(AWK)X 626 2168(language.)N 3 f 9 f 626 2302(-)N 628(-)X 3 f 672(F)X 2 f 721(fs)X 1 f 914(Use)X 2 f 1059(fs)X 1 f 1132(for)X 1246(the)X 1364(input)X 1548(\256eld)X 1710(separator)X 2025(\(the)X 2170(value)X 2364(of)X 2451(the)X 3 f 2569(FS)X 1 f 2682(prede\256ned)X 3041(variable\).)X 3 f 9 f 626 2436(-)N 628(-)X 3 f 672(v)X 2 f 732(var)X 1 f 845(=)X 2 f 896(val)X 1 f 914 2532(Assign)N 1161(the)X 1284(value)X 2 f 1483(val)X 1 f 1587(,)X 1632(to)X 1719(the)X 1842(variable)X 2 f 2126(var)X 1 f 2239(,)X 2284(before)X 2515(execution)X 2852(of)X 2944(the)X 3067(program)X 3364(begins.)X 3638(Such)X 3823(variable)X 914 2628(values)N 1139(are)X 1258(available)X 1568(to)X 1650(the)X 3 f 1768(BEGIN)X 1 f 2045(block)X 2243(of)X 2330(an)X 2426(AWK)X 2638(program.)X 3 f 9 f 626 2762(-)N 628(-)X 3 f 672(f)X 2 f 719(program-\256le)X 1 f 914 2858(Read)N 1101(the)X 1221(AWK)X 1435(program)X 1729(source)X 1961(from)X 2139(the)X 2259(\256le)X 2 f 2383(program-\256le)X 1 f 2794(,)X 2836(instead)X 3086(of)X 3176(from)X 3355(the)X 3476(\256rst)X 3623(command)X 3962(line)X 914 2954(argument.)N 1277(Multiple)X 3 f 9 f 1572(-)X 1574(-)X 3 f 1618(f)X 1 f 1665(options)X 1920(may)X 2078(be)X 2174(used.)X 3 f 9 f 626 3088(-)N 628(-)X 678(-)X 680(-)X 1 f 914(Signal)X 1141(the)X 1262(end)X 1401(of)X 1491(options.)X 1769(This)X 1934(is)X 2010(useful)X 2229(to)X 2314(allow)X 2515(further)X 2758(arguments)X 3116(to)X 3202(the)X 3324(AWK)X 3540(program)X 3836(itself)X 4020(to)X 914 3184(start)N 1080(with)X 1250(a)X 1314(``)X 9 f 1368(-)X 1 f 1412(''.)X 1534(This)X 1704(is)X 1785(mainly)X 2035(for)X 2157(consistency)X 2558(with)X 2727(the)X 2852(argument)X 3182(parsing)X 3445(convention)X 3828(used)X 4002(by)X 914 3280(most)N 1089(other)X 1274(System)X 1529(V)X 1607(programs.)X 626 3414(The)N 771(following)X 1102(options)X 1357(are)X 1476(speci\256c)X 1741(to)X 1823(the)X 1941(GNU)X 2135(implementation.)X 3 f 9 f 626 3548(-)N 628(-)X 3 f 672(a)X 1 f 914(Use)X 1061(AWK)X 1275(style)X 1448(regular)X 1698(expressions)X 2094(as)X 2183(described)X 2513(in)X 2597(the)X 2717(book.)X 2940(This)X 3105(is)X 3181(the)X 3302(current)X 3553(default,)X 3819(but)X 3944(may)X 914 3644(not)N 1036(be)X 1132(when)X 1326(the)X 1444(POSIX)X 1695(P1003.2)X 1979(standard)X 2271(is)X 2344(\256nalized.)X 2680(It)X 2749(is)X 2822(orthogonal)X 3189(to)X 3 f 9 f 3271(-)X 3273(-)X 3 f 3317(c)X 1 f 3353(.)X 3 f 9 f 626 3778(-)N 628(-)X 3 f 672(e)X 1 f 914(Use)X 2 f 1069(egrep)X 1 f 1258(\(1\))X 1382(style)X 1563(regular)X 1821(expressions)X 2226(as)X 2324(described)X 2663(in)X 2756(POSIX)X 3018(standard.)X 3361(This)X 3534(may)X 3703(become)X 3984(the)X 914 3874(default)N 1157(when)X 1351(the)X 1469(POSIX)X 1720(P1003.2)X 2004(standard)X 2296(is)X 2369(\256nalized.)X 2705(It)X 2774(is)X 2847(orthogonal)X 3214(to)X 3 f 9 f 3296(-)X 3298(-)X 3 f 3342(c)X 1 f 3378(.)X 3 f 9 f 626 4008(-)N 628(-)X 3 f 672(c)X 1 f 914(Run)X 1071(in)X 2 f 1157(compatibility)X 1 f 1604(mode.)X 1847(In)X 1939(compatibility)X 2390(mode,)X 2 f 2613(gawk)X 1 f 2807(behaves)X 3091(identically)X 3454(to)X 9 s 3539(UNIX)X 2 f 10 s 3744(awk)X 1 f 3879(;)X 3926(none)X 914 4104(of)N 1001(the)X 1119(GNU-speci\256c)X 1585(extensions)X 1943(are)X 2062(recognized.)X 3 f 9 f 626 4238(-)N 628(-)X 3 f 672(C)X 1 f 914(Print)X 1104(the)X 1237(short)X 1433(version)X 1705(of)X 1808(the)X 1942(GNU)X 2152(copyright)X 2495(information)X 2909(message)X 3217(on)X 3333(the)X 3467(error)X 3660(output.)X 3940(This)X 914 4334(option)N 1138(may)X 1296(disappear)X 1624(in)X 1706(a)X 1762(future)X 1974(version)X 2230(of)X 2 f 2317(gawk)X 1 f 2492(.)X 3 f 9 f 626 4468(-)N 628(-)X 3 f 672(V)X 1 f 914(Print)X 1103(version)X 1373(information)X 1785(for)X 1913(this)X 2062(particular)X 2405(copy)X 2596(of)X 2 f 2698(gawk)X 1 f 2902(on)X 3017(the)X 3150(error)X 3342(output.)X 3621(This)X 3798(is)X 3886(useful)X 914 4564(mainly)N 1158(for)X 1274(knowing)X 1576(if)X 1647(the)X 1767(current)X 2017(copy)X 2195(of)X 2 f 2284(gawk)X 1 f 2475(on)X 2577(your)X 2746(system)X 2990(is)X 3065(up)X 3166(to)X 3249(date)X 3404(with)X 3567(respect)X 3816(to)X 3899(what-)X 914 4660(ever)N 1078(the)X 1201(Free)X 1369(Software)X 1684(Foundation)X 2073(is)X 2151(distributing.)X 2584(This)X 2751(option)X 2980(may)X 3144(disappear)X 3478(in)X 3566(a)X 3628(future)X 3846(version)X 914 4756(of)N 2 f 1001(gawk)X 1 f 1176(.)X 626 4890(Any)N 784(other)X 969(options)X 1224(are)X 1343(\257agged)X 1599(as)X 1686(illegal,)X 1926(but)X 2048(are)X 2167(otherwise)X 2499(ignored.)X 626 5024(An)N 744(AWK)X 956(program)X 1248(consists)X 1521(of)X 1608(a)X 1664(sequence)X 1979(of)X 2066(pattern-action)X 2532(statements)X 2890(and)X 3026(optional)X 3308(function)X 3595(de\256nitions.)X 2 f 914 5158(pattern)N 3 f 1202({)X 2 f 1254(action)X 1474(statements)X 3 f 1832(})X 914 5254(function)N 2 f 1218(name)X 3 f 1392(\()X 2 f 1419(parameter)X 1773(list)X 3 f 1870(\))X 1917({)X 2 f 1969(statements)X 3 f 2327(})X 2 f 626 5388(Gawk)N 1 f 833(\256rst)X 977(reads)X 1167(the)X 1285(program)X 1577(source)X 1807(from)X 1983(the)X 2 f 2101(program-\256le)X 1 f 2512(\(s\))X 2617(if)X 2686(speci\256ed,)X 3011(or)X 3099(from)X 3276(the)X 3395(\256rst)X 3540(non-option)X 3912(argu-)X 626 5484(ment)N 813(on)X 920(the)X 1045(command)X 1388(line.)X 1575(The)X 3 f 9 f 1727(-)X 1729(-)X 3 f 1773(f)X 1 f 1827(option)X 2057(may)X 2221(be)X 2323(used)X 2496(multiple)X 2788(times)X 2987(on)X 3093(the)X 3217(command)X 3559(line.)X 2 f 3745(Gawk)X 1 f 3958(will)X 626 5580(read)N 785(the)X 903(program)X 1195(text)X 1335(as)X 1422(if)X 1491(all)X 1591(the)X 2 f 1709(program-\256le)X 1 f 2120(s)X 2172(had)X 2309(been)X 2482(concatenated)X 2923(together.)X 3247(This)X 3410(is)X 3484(useful)X 3701(for)X 3816(building)X 626 5676(libraries)N 910(of)X 997(AWK)X 1209(functions,)X 1547(without)X 1811(having)X 2049(to)X 2131(include)X 2387(them)X 2567(in)X 2649(each)X 2817(new)X 2971(AWK)X 3183(program)X 3475(that)X 3615(uses)X 3773(them.)X 3993(To)X 626 5772(use)N 754(a)X 811(library)X 1046(function)X 1334(in)X 1417(a)X 1474(\256le)X 1598(from)X 1776(a)X 1834(program)X 2128(typed)X 2328(in)X 2412(on)X 2514(the)X 2634(command)X 2972(line,)X 3134(specify)X 3 f 3388(/dev/tty)X 1 f 3668(as)X 3757(one)X 3895(of)X 3984(the)X 338 6156(Free)N 501(Software)X 811(Foundation)X 1740(Last)X 1898(change:)X 2168(August)X 2419(24)X 2519(1989)X 4042(1)X 2 p %%Page: 2 2 10 s 0 xH 0 xS 1 f 338 384(GAWK)N 601(\()X 641(1)X 694(\))X 1852(USER)X 2076(COMMANDS)X 3699(GAWK)X 3962(\()X 4002(1)X 4055(\))X 2 f 626 768(program-\256le)N 1 f 1037(s,)X 1108(type)X 1266(your)X 1433(program,)X 1745(and)X 1881(end)X 2017(it)X 2081(with)X 2243(a)X 3 f 2299(\303D)X 1 f 2404(\(control-d\).)X 626 902(The)N 772(environment)X 1198(variable)X 3 f 1478(AWKPATH)X 1 f 1921(speci\256es)X 2218(a)X 2275(search)X 2502(path)X 2661(to)X 2744(use)X 2873(when)X 3069(\256nding)X 3317(source)X 3549(\256les)X 3704(named)X 3940(with)X 626 998(the)N 3 f 9 f 751(-)X 753(-)X 3 f 797(f)X 1 f 851(option.)X 1122(If)X 1202(this)X 1343(variable)X 1628(does)X 1801(not)X 1929(exist,)X 2126(the)X 2250(default)X 2499(path)X 2663(is)X 3 f 2742 -0.1324(".:/usr/lib/awk:/usr/local/lib/awk")AX 1 f 3900(.)X 3966(If)X 4046(a)X 626 1094(\256le)N 748(name)X 942(given)X 1140(to)X 1222(the)X 3 f 9 f 1340(-)X 1342(-)X 3 f 1386(f)X 1 f 1433(option)X 1657(contains)X 1944(a)X 2000(``/'')X 2150(character,)X 2486(no)X 2586(path)X 2744(search)X 2970(is)X 3043(performed.)X 2 f 626 1228(Gawk)N 1 f 838(compiles)X 1152(the)X 1275(program)X 1572(into)X 1721(an)X 1822(internal)X 2092(form,)X 2293(executes)X 2595(the)X 2718(code)X 2895(in)X 2982(the)X 3 f 3105(BEGIN)X 1 f 3387(block\(s\))X 3675(\(if)X 3777(any\),)X 3966(and)X 626 1324(then)N 792(proceeds)X 1106(to)X 1196(read)X 1363(each)X 1539(\256le)X 1669(named)X 1911(in)X 2001(the)X 3 f 2127(ARGV)X 1 f 2391(array.)X 2625(If)X 2707(there)X 2896(are)X 3023(no)X 3131(\256les)X 3292(named)X 3534(on)X 3641(the)X 3766(command)X 626 1420(line,)N 2 f 786(gawk)X 1 f 975(reads)X 1165(the)X 1283(standard)X 1575(input.)X 626 1554(If)N 707(a)X 770(``\256le'')X 1007(named)X 1248(on)X 1355(the)X 1481(command)X 1825(line)X 1973(has)X 2108(the)X 2234(form)X 2 f 2418(var)X 3 f 2531(=)X 2 f 2577(val)X 1 f 2703(it)X 2775(is)X 2856(treated)X 3103(as)X 3198(a)X 3262(variable)X 3549(assignment.)X 3957(The)X 626 1650(variable)N 2 f 915(var)X 1 f 1052(will)X 1205(be)X 1310(assigned)X 1615(the)X 1742(value)X 2 f 1945(val)X 1 f 2049(.)X 2118(This)X 2289(is)X 2371(most)X 2555(useful)X 2780(for)X 2903(dynamically)X 3328(assigning)X 3659(values)X 3893(to)X 3984(the)X 626 1746(variables)N 939(AWK)X 1154(uses)X 1315(to)X 1400(control)X 1650(how)X 1812(input)X 2000(is)X 2077(broken)X 2324(into)X 2472(\256elds)X 2669(and)X 2809(records.)X 3090(It)X 3163(is)X 3240(also)X 3393(useful)X 3613(for)X 3731(controlling)X 626 1842(state)N 793(if)X 862(multiple)X 1148(passes)X 1373(are)X 1492(needed)X 1740(over)X 1903(a)X 1959(single)X 2170(data)X 2324(\256le.)X 626 1976(For)N 761(each)X 933(line)X 1077(in)X 1163(the)X 1285(input,)X 2 f 1493(gawk)X 1 f 1686(tests)X 1852(to)X 1938(see)X 2065(if)X 2138(it)X 2206(matches)X 2493(any)X 2 f 2633(pattern)X 1 f 2888(in)X 2974(the)X 3096(AWK)X 3312(program.)X 3648(For)X 3784(each)X 3957(pat-)X 626 2072(tern)N 771(that)X 911(the)X 1029(line)X 1169(matches,)X 1472(the)X 1590(associated)X 2 f 1940(action)X 1 f 2160(is)X 2233(executed.)X 3 f 9 s 338 2206(VARIABLES)N 788(AND)X 974(FIELDS)X 1 f 10 s 626 2302(AWK)N 847(variables)X 1167(are)X 1296(dynamic;)X 1624(they)X 1792(come)X 1996(into)X 2150(existence)X 2479(when)X 2683(they)X 2851(are)X 2980(\256rst)X 3134(used.)X 3331(Their)X 3535(values)X 3770(are)X 3899(either)X 626 2398(\257oating-point)N 1082(numbers)X 1379(or)X 1467(strings,)X 1721(depending)X 2076(upon)X 2257(how)X 2416(they)X 2575(are)X 2695(used.)X 2883(AWK)X 3096(also)X 3246(has)X 3374(one)X 3510(dimension)X 3863(arrays;)X 626 2494(multiply)N 916(dimensioned)X 1345(arrays)X 1562(may)X 1720(be)X 1816(simulated.)X 2187(There)X 2396(are)X 2516(several)X 2765(pre-de\256ned)X 3152(variables)X 3463(that)X 3604(AWK)X 3817(sets)X 3958(as)X 4046(a)X 626 2590(program)N 918(runs;)X 1098(these)X 1283(will)X 1427(be)X 1523(described)X 1851(as)X 1938(needed)X 2186(and)X 2322(summarized)X 2734(below.)X 3 f 9 s 482 2724(Fields)N 1 f 10 s 626 2820(As)N 742(each)X 917(input)X 1108(line)X 1255(is)X 1335(read,)X 2 f 1521(gawk)X 1 f 1717(splits)X 1912(the)X 2038(line)X 2186(into)X 2 f 2338(\256elds)X 1 f 2513(,)X 2561(using)X 2762(the)X 2888(value)X 3090(of)X 3185(the)X 3 f 3311(FS)X 1 f 3432(variable)X 3719(as)X 3814(the)X 3940(\256eld)X 626 2916(separator.)N 986(If)X 3 f 1065(FS)X 1 f 1183(is)X 1261(a)X 1322(single)X 1538(character,)X 1879(\256elds)X 2077(are)X 2201(separated)X 2530(by)X 2635(that)X 2780(character.)X 3141(Otherwise,)X 3 f 3516(FS)X 1 f 3633(is)X 3710(expected)X 4020(to)X 626 3012(be)N 729(a)X 792(full)X 930(regular)X 1185(expression.)X 1595(In)X 1689(the)X 1814(special)X 2064(case)X 2230(that)X 3 f 2377(FS)X 1 f 2497(is)X 2577(a)X 2640(single)X 2858(blank,)X 3083(\256elds)X 3283(are)X 3409(separated)X 3741(by)X 3849(runs)X 4015(of)X 626 3108(blanks)N 858(and/or)X 1086(tabs.)X 1278(Note)X 1457(that)X 1600(the)X 1721(value)X 1918(of)X 3 f 2008(IGNORECASE)X 1 f 2568(\(see)X 2721(below\))X 2966(will)X 3112(also)X 3263(affect)X 3469(how)X 3629(\256elds)X 3824(are)X 3945(split)X 626 3204(when)N 3 f 820(FS)X 1 f 933(is)X 1006(a)X 1062(regular)X 1310(expression.)X 626 3338(Each)N 810(\256eld)X 975(in)X 1060(the)X 1181(input)X 1368(line)X 1512(may)X 1674(be)X 1774 0.4028(referenced)AX 2139(by)X 2243(its)X 2342(position,)X 3 f 2643($1)X 1 f (,)S 3 f 2767($2)X 1 f (,)S 2891(and)X 3031(so)X 3126(on.)X 3 f 3270($0)X 1 f 3374(is)X 3451(the)X 3573(whole)X 3793(line.)X 3957(The)X 626 3434(value)N 820(of)X 907(a)X 963(\256eld)X 1125(may)X 1283(be)X 1379(assigned)X 1675(to)X 1757(as)X 1844(well.)X 2042(Fields)X 2257(need)X 2429(not)X 2551(be)X 2647 0.4028(referenced)AX 3008(by)X 3108(constants:)X 3 f 914 3568(n)N 978(=)X 1044(5)X 914 3664(print)N 1107($n)X 1 f 626 3798(prints)N 828(the)X 946(\256fth)X 1099(\256eld)X 1261(in)X 1343(the)X 1461(input)X 1645(line.)X 1825(The)X 1970(variable)X 3 f 2249(NF)X 1 f 2376(is)X 2449(set)X 2558(to)X 2640(the)X 2758(total)X 2920(number)X 3185(of)X 3272(\256elds)X 3465(in)X 3547(the)X 3665(input)X 3849(line.)X 626 3932(References)N 1012(to)X 1102(non-existent)X 1526(\256elds)X 1727(\(i.e.)X 1881(\256elds)X 2083(after)X 3 f 2260($NF)X 1 f 2407(\),)X 2483(produce)X 2771(the)X 2898(null-string.)X 3280(However,)X 3624(assigning)X 3955(to)X 4046(a)X 626 4028(non-existent)N 1047(\256eld)X 1214(\(e.g.,)X 3 f 1402($\(NF+2\))X 1714(=)X 1785(5)X 1 f (\))S 1877(will)X 2025(increase)X 2313(the)X 2435(value)X 2633(of)X 3 f 2724(NF)X 1 f 2831(,)X 2875(create)X 3092(any)X 3232(intervening)X 3621(\256elds)X 3818(with)X 3984(the)X 626 4124(null)N 770(string)X 972(as)X 1060(their)X 1228(value,)X 1443(and)X 1580(cause)X 1780(the)X 1899(value)X 2094(of)X 3 f 2182($0)X 1 f 2283(to)X 2366(be)X 2463(recomputed,)X 2883(with)X 3046(the)X 3165(\256elds)X 3359(being)X 3558(separated)X 3883(by)X 3984(the)X 626 4220(value)N 820(of)X 3 f 907(OFS)X 1 f 1062(.)X 3 f 9 s 482 4354(Built-in)N 748(Variables)X 1 f 10 s 626 4450(AWK's)N 896(built-in)X 1151(variables)X 1461(are:)X 3 f 914 4584(ARGC)N 1 f 1202(the)X 1328(number)X 1601(of)X 1696(command)X 2040(line)X 2188(arguments)X 2550(\(does)X 2752(not)X 2882(include)X 3146(options)X 3410(to)X 2 f 3501(gawk)X 1 f 3676(,)X 3725(or)X 3821(the)X 3948(pro-)X 1202 4680(gram)N 1387(source\).)X 3 f 914 4814(ARGV)N 1 f 1202(array)X 1391(of)X 1481(command)X 1820(line)X 1963(arguments.)X 2341(The)X 2490(array)X 2680(is)X 2757(indexed)X 3035(from)X 3215(0)X 3279(to)X 3 f 3365(ARGC)X 1 f 9 f 3625(-)X 1 f 3693(1.)X 3797(Dynami-)X 1202 4910(cally)N 1378(changing)X 1692(the)X 1810(contents)X 2097(of)X 3 f 2184(ARGV)X 1 f 2440(can)X 2572(control)X 2819(the)X 2937(\256les)X 3090(used)X 3257(for)X 3371(data.)X 3 f 914 5044(ENVIRON)N 1 f 1202 5140(An)N 1325(array)X 1516(containing)X 1879(the)X 2003(values)X 2234(of)X 2327(the)X 2451(current)X 2705(environment.)X 3176(The)X 3327(array)X 3519(is)X 3598(indexed)X 3878(by)X 3984(the)X 1202 5236(environment)N 1678(variables,)X 2059(each)X 2278(element)X 2603(being)X 2851(the)X 3019(value)X 3263(of)X 3400(that)X 3590(variable)X 3919(\(e.g.,)X 3 f 1202 5332(ENVIRON["HOME"])N 1 f 2009(might)X 2229(be)X 3 f 2339(/u/arnold)X 1 f 2653(\).)X 2754(Changing)X 3099(this)X 3248(array)X 3448(does)X 3629(not)X 3765(affect)X 3984(the)X 1202 5428(environment)N 1635(seen)X 1806(by)X 1914(programs)X 2245(which)X 2 f 2469(gawk)X 1 f 2666(spawns)X 2930(via)X 3056(redirection)X 3432(or)X 3527(the)X 3 f 3653(system)X 1 f 3912(func-)X 1202 5524(tion.)N 1386(\(This)X 1575(may)X 1733(change)X 1981(in)X 2063(a)X 2119(future)X 2331(version)X 2587(of)X 2 f 2674(gawk)X 1 f 2849(.\))X 3 f 914 5658(FILENAME)N 1 f 1202 5754(the)N 1320(name)X 1514(of)X 1601(the)X 1719(current)X 1967(input)X 2152(\256le.)X 2315(If)X 2390(no)X 2491(\256les)X 2645(are)X 2765(speci\256ed)X 3071(on)X 3172(the)X 3291(command)X 3628(line,)X 3789(the)X 3908(value)X 1202 5850(of)N 3 f 1289(FILENAME)X 1 f 1740(is)X 1813(``)X 9 f 1867(-)X 1 f 1911(''.)X 338 6234(Free)N 501(Software)X 811(Foundation)X 1740(Last)X 1898(change:)X 2168(August)X 2419(24)X 2519(1989)X 4042(2)X 3 p %%Page: 3 3 10 s 0 xH 0 xS 1 f 338 384(GAWK)N 601(\()X 641(1)X 694(\))X 1852(USER)X 2076(COMMANDS)X 3699(GAWK)X 3962(\()X 4002(1)X 4055(\))X 3 f 914 768(FNR)N 1 f 1202(the)X 1320(input)X 1504(record)X 1730(number)X 1995(in)X 2077(the)X 2195(current)X 2443(input)X 2627(\256le.)X 3 f 914 902(FS)N 1 f 1202(the)X 1320(input)X 1504(\256eld)X 1666(separator,)X 2001(a)X 2057(blank)X 2255(by)X 2355(default.)X 3 f 914 1036(IGNORECASE)N 1 f 1202 1132(Controls)N 1501(the)X 1623(case-sensitivity)X 2141(of)X 2232(all)X 2336(regular)X 2588(expression)X 2955(operations.)X 3334(If)X 3 f 3413(IGNORECASE)X 1 f 3975(has)X 1202 1228(a)N 1265(non-zero)X 1578(value,)X 1799(then)X 1964(pattern)X 2214(matching)X 2539(in)X 2627(rules,)X 2829(\256eld)X 2997(splitting)X 3284(with)X 3 f 3452(FS)X 1 f 3545(,)X 3591(regular)X 3845(expres-)X 1202 1324(sion)N 1367(matching)X 1697(with)X 3 f 1871(\304)X 1 f 1930(and)X 3 f 2078(!\304)X 1 f 2132(,)X 2184(and)X 2333(the)X 3 f 2464(gsub\(\))X 1 f 2677(,)X 3 f 2730(index\(\))X 1 f (,)S 3 f 3023(match\(\))X 1 f 3291(,)X 3 f 3344(split\(\))X 1 f (,)S 3597(and)X 3 f 3746(sub\(\))X 1 f 3952(pre-)X 1202 1420(de\256ned)N 1461(functions)X 1782(will)X 1929(all)X 2032(ignore)X 2259(case)X 2420(when)X 2616(doing)X 2820(regular)X 3070(expression)X 3435(operations.)X 3831(Thus,)X 4033(if)X 3 f 1202 1516(IGNORECASE)N 1 f 1762(is)X 1838(not)X 1963(equal)X 2160(to)X 2246(zero,)X 3 f 2429(/aB/)X 1 f 2590(matches)X 2877(all)X 2981(of)X 3072(the)X 3194(strings)X 3 f 3431("ab")X 1 f 3603(,)X 3 f 3647("aB")X 1 f 3828(,)X 3 f 3872("Ab")X 1 f 4062(,)X 1202 1612(and)N 3 f 1345("AB")X 1 f 1544(.)X 1611(As)X 1727(with)X 1895(all)X 2001(AWK)X 2219(variables,)X 2555(the)X 2679(initial)X 2891(value)X 3091(of)X 3 f 3184(IGNORECASE)X 1 f 3747(is)X 3826(zero,)X 4011(so)X 1202 1708(all)N 1302(regular)X 1550(expression)X 1913(operations)X 2267(are)X 2386(normally)X 2695(case-sensitive.)X 3 f 914 1842(NF)N 1 f 1202(the)X 1320(number)X 1585(of)X 1672(\256elds)X 1865(in)X 1947(the)X 2065(current)X 2313(input)X 2497(record.)X 3 f 914 1976(NR)N 1 f 1202(the)X 1320(total)X 1482(number)X 1747(of)X 1834(input)X 2018(records)X 2275(seen)X 2438(so)X 2529(far.)X 3 f 914 2110(OFMT)N 1 f 1202(the)X 1320(output)X 1544(format)X 1778(for)X 1892(numbers,)X 3 f 2208(%.6g)X 1 f 2408(by)X 2508(default.)X 3 f 914 2244(OFS)N 1 f 1202(the)X 1320(output)X 1544(\256eld)X 1706(separator,)X 2041(a)X 2097(blank)X 2295(by)X 2395(default.)X 3 f 914 2378(ORS)N 1 f 1202(the)X 1320(output)X 1544(record)X 1770(separator,)X 2105(by)X 2205(default)X 2448(a)X 2504(newline.)X 3 f 914 2512(RS)N 1 f 1202(the)X 1326(input)X 1516(record)X 1748(separator,)X 2089(by)X 2195(default)X 2444(a)X 2506(newline.)X 3 f 2826(RS)X 1 f 2954(is)X 3033(exceptional)X 3429(in)X 3517(that)X 3664(only)X 3833(the)X 3958(\256rst)X 1202 2608(character)N 1523(of)X 1615(its)X 1715(string)X 1922(value)X 2121(is)X 2199(used)X 2371(for)X 2490(separating)X 2845(records.)X 3127(If)X 3 f 3206(RS)X 1 f 3333(is)X 3411(set)X 3524(to)X 3610(the)X 3732(null)X 3880(string,)X 1202 2704(then)N 1370(records)X 1638(are)X 1768(separated)X 2103(by)X 2214(blank)X 2423(lines.)X 2645(When)X 3 f 2868(RS)X 1 f 3001(is)X 3085(set)X 3205(to)X 3298(the)X 3427(null)X 3582(string,)X 3815(then)X 3984(the)X 1202 2800(newline)N 1480(character)X 1800(always)X 2047(acts)X 2196(as)X 2287(a)X 2347(\256eld)X 2513(separator,)X 2852(in)X 2938(addition)X 3224(to)X 3310(whatever)X 3629(value)X 3 f 3827(FS)X 1 f 3944(may)X 1202 2896(have.)N 3 f 914 3030(RSTART)N 1 f 1202 3126(the)N 1320(index)X 1518(of)X 1605(the)X 1723(\256rst)X 1867(character)X 2183(matched)X 2475(by)X 3 f 2575(match\(\))X 1 f 2843(;)X 2885(0)X 2945(if)X 3014(no)X 3114(match.)X 3 f 914 3260(RLENGTH)N 1 f 1202 3356(the)N 1320(length)X 1540(of)X 1627(the)X 1745(string)X 1947(matched)X 2239(by)X 3 f 2339(match\(\))X 1 f 2607(;)X 9 f 2649(-)X 1 f 2693(1)X 2753(if)X 2822(no)X 2922(match.)X 3 f 914 3490(SUBSEP)N 1 f 1202 3586(the)N 1320(character)X 1636(used)X 1803(to)X 1885(separate)X 2169(multiple)X 2455(subscripts)X 2795(in)X 2877(array)X 3063(elements,)X 3388(by)X 3488(default)X 3 f 3731("\\034")X 1 f 3961(.)X 3 f 9 s 482 3720(Arrays)N 1 f 10 s 626 3816(Arrays)N 865(are)X 984(subscripted)X 1369(with)X 1531(an)X 1627(expression)X 1990(between)X 2278(square)X 2508(brackets)X 2796(\()X 3 f 2823([)X 1 f 2870(and)X 3 f 3006(])X 1 f 3033(\).)X 3120(If)X 3194(the)X 3312(expression)X 3675(is)X 3748(an)X 3845(expres-)X 626 3912(sion)N 786(list)X 910(\()X 2 f 937(expr)X 1 f 1086(,)X 2 f 1133(expr)X 1 f 1309(...\))X 1443(then)X 1608(the)X 1733(array)X 1926(subscript)X 2241(is)X 2320(a)X 2382(string)X 2590(consisting)X 2940(of)X 3033(the)X 3157(concatenation)X 3629(of)X 3722(the)X 3846(\(string\))X 626 4008(value)N 822(of)X 911(each)X 1081(expression,)X 1466(separated)X 1792(by)X 1894(the)X 2014(value)X 2210(of)X 2299(the)X 3 f 2419(SUBSEP)X 1 f 2743(variable.)X 3065(This)X 3230(facility)X 3480(is)X 3556(used)X 3726(to)X 3811(simulate)X 626 4104(multiply)N 916(dimensioned)X 1345(arrays.)X 1582(For)X 1713(example:)X 3 f 914 4238(i)N 956(=)X 1022("A")X 1188(;)X 1241(j)X 1288(=)X 1354("B")X 1515(;)X 1568(k)X 1632(=)X 1698("C")X 914 4334(x[i,)N 1043(j,)X 1110(k])X 1201(=)X 1267("hello,)X 1515(world\\n")X 1 f 626 4468(assigns)N 901(the)X 1043(string)X 3 f 1269("hello,)X 1541(world\\n")X 1 f 1895(to)X 2001(the)X 2144(element)X 2443(of)X 2555(the)X 2698(array)X 3 f 2909(x)X 1 f 2994(which)X 3235(is)X 3333(indexed)X 3632(by)X 3757(the)X 3900(string)X 3 f 626 4564("A\\034B\\034C")N 1 f 1167(.)X 1207(All)X 1329(arrays)X 1546(in)X 1628(AWK)X 1840(are)X 1959(associative,)X 2351(i.e.)X 2469(indexed)X 2743(by)X 2843(string)X 3045(values.)X 626 4698(The)N 772(special)X 1016(operator)X 3 f 1305(in)X 1 f 1392(may)X 1551(be)X 1648(used)X 1816(in)X 1899(an)X 3 f 1996(if)X 1 f 2066(or)X 3 f 2154(while)X 1 f 2357(statement)X 2685(to)X 2768(see)X 2892(if)X 2962(an)X 3059(array)X 3246(has)X 3374(an)X 3471(index)X 3670(consisting)X 4015(of)X 626 4794(a)N 682(particular)X 1010(value.)X 3 f 914 4928(if)N 983(\(val)X 1132(in)X 1218(array\))X 1202 5024(print)N 1395(array[val])X 1 f 626 5158(If)N 700(the)X 818(array)X 1004(has)X 1131(multiple)X 1417(subscripts,)X 1777(use)X 3 f 1904(\(i,)X 1993(j\))X 2067(in)X 2153(array)X 1 f 2345(.)X 626 5292(The)N 3 f 771(in)X 1 f 857(construct)X 1171(may)X 1329(also)X 1478(be)X 1574(used)X 1741(in)X 1823(a)X 3 f 1879(for)X 1 f 2002(loop)X 2164(to)X 2246(iterate)X 2467(over)X 2630(all)X 2730(the)X 2848(elements)X 3153(of)X 3240(an)X 3336(array.)X 626 5426(An)N 744(element)X 1018(may)X 1176(be)X 1272(deleted)X 1524(from)X 1700(an)X 1796(array)X 1982(using)X 2175(the)X 3 f 2293(delete)X 1 f 2514(statement.)X 3 f 9 s 482 5560(Variable)N 780(Typing)X 1 f 10 s 626 5656(Variables)N 962(and)X 1106(\256elds)X 1307(may)X 1473(be)X 1577(\(\257oating)X 1876(point\))X 2095(numbers,)X 2420(or)X 2516(strings,)X 2778(or)X 2874(both.)X 3065(How)X 3250(the)X 3377(value)X 3580(of)X 3676(a)X 3741(variable)X 4029(is)X 626 5752(interpreted)N 996(depends)X 1281(upon)X 1463(its)X 1559(context.)X 1836(If)X 1911(used)X 2079(in)X 2162(a)X 2219(numeric)X 2503(expression,)X 2887(it)X 2952(will)X 3097(be)X 3194(treated)X 3434(as)X 3522(a)X 3579(number,)X 3865(if)X 3935(used)X 626 5848(as)N 713(a)X 769(string)X 971(it)X 1035(will)X 1179(be)X 1275(treated)X 1514(as)X 1601(a)X 1657(string.)X 338 6232(Free)N 501(Software)X 811(Foundation)X 1740(Last)X 1898(change:)X 2168(August)X 2419(24)X 2519(1989)X 4042(3)X 4 p %%Page: 4 4 10 s 0 xH 0 xS 1 f 338 384(GAWK)N 601(\()X 641(1)X 694(\))X 1852(USER)X 2076(COMMANDS)X 3699(GAWK)X 3962(\()X 4002(1)X 4055(\))X 626 768(To)N 737(force)X 925(a)X 983(variable)X 1264(to)X 1348(be)X 1446(treated)X 1687(as)X 1776(a)X 1834(number,)X 2121(add)X 2259(0)X 2321(to)X 2405(it;)X 2494(to)X 2579(force)X 2768(it)X 2835(to)X 2920(be)X 3019(treated)X 3261(as)X 3351(a)X 3410(string,)X 3635(concatenate)X 4038(it)X 626 864(with)N 788(the)X 906(null)X 1050(string.)X 626 998(The)N 784(AWK)X 1009(language)X 1332(de\256nes)X 1592(comparisons)X 2030(as)X 2130(being)X 2341(done)X 2530(numerically)X 2946(if)X 3028(possible,)X 3343(otherwise)X 3689(one)X 3839(or)X 3940(both)X 626 1094(operands)N 936(are)X 1055(converted)X 1392(to)X 1474(strings)X 1707(and)X 1843(a)X 1899(string)X 2101(comparison)X 2495(is)X 2568(performed.)X 626 1228(Uninitialized)N 1064(variables)X 1374(have)X 1546(the)X 1664(numeric)X 1947(value)X 2141(0)X 2201(and)X 2337(the)X 2455(string)X 2657(value)X 2851("")X 2937(\(the)X 3082(null,)X 3246(or)X 3333(empty,)X 3573(string\).)X 3 f 9 s 338 1362(PATTERNS)N 752(AND)X 938(ACTIONS)X 1 f 10 s 626 1458(AWK)N 853(is)X 941(a)X 1012(line)X 1167(oriented)X 1465(language.)X 1810(The)X 1970(pattern)X 2228(comes)X 2468(\256rst,)X 2647(and)X 2798(then)X 2971(the)X 3104(action.)X 3355(Action)X 3609(statements)X 3983(are)X 626 1554(enclosed)N 934(in)X 3 f 1023({)X 1 f 1082(and)X 3 f 1225(})X 1 f 1257(.)X 1324(Either)X 1547(the)X 1672(pattern)X 1922(may)X 2087(be)X 2190(missing,)X 2484(or)X 2577(the)X 2701(action)X 2923(may)X 3087(be)X 3189(missing,)X 3483(but,)X 3631(of)X 3724(course,)X 3980(not)X 626 1650(both.)N 808(If)X 882(the)X 1000(pattern)X 1243(is)X 1316(missing,)X 1604(the)X 1722(action)X 1938(will)X 2082(be)X 2178(executed)X 2484(for)X 2598(every)X 2798(single)X 3010(line)X 3151(of)X 3239(input.)X 3464(A)X 3543(missing)X 3812(action)X 4029(is)X 626 1746(equivalent)N 980(to)X 3 f 914 1880({)N 966(print)X 1159(})X 1 f 626 2014(which)N 842(prints)X 1044(the)X 1162(entire)X 1365(line.)X 626 2148(Comments)N 992(begin)X 1190(with)X 1352(the)X 1470(``#'')X 1638(character,)X 1974(and)X 2110(continue)X 2406(until)X 2572(the)X 2690(end)X 2826(of)X 2913(the)X 3031(line.)X 3212(Blank)X 3424(lines)X 3596(may)X 3755(be)X 3852(used)X 4020(to)X 626 2244(separate)N 911(statements.)X 1310(Normally,)X 1658(a)X 1715(statement)X 2043(ends)X 2211(with)X 2374(a)X 2431(newline,)X 2726(however,)X 3044(this)X 3180(is)X 3254(not)X 3377(the)X 3495(case)X 3654(for)X 3768(lines)X 3939(end-)X 626 2340(ing)N 761(in)X 856(a)X 925(``,'',)X 1106(``{'',)X 1305(``?'',)X 1502(``:'',)X 1685(``&&'',)X 1970(or)X 2070(``)X 9 f 2124(||)X 1 f (''.)S 2283(Lines)X 2494(ending)X 2745(in)X 3 f 2840(do)X 1 f 2957(or)X 3 f 3057(else)X 1 f 3215(also)X 3377(have)X 3563(their)X 3744(statements)X 626 2436(automatically)N 1088(continued)X 1430(on)X 1536(the)X 1659(following)X 1995(line.)X 2180(In)X 2272(other)X 2462(cases,)X 2677(a)X 2738(line)X 2883(can)X 3020(be)X 3121(continued)X 3462(by)X 3567(ending)X 3810(it)X 3879(with)X 4046(a)X 626 2532(``\\'',)N 796(in)X 878(which)X 1094(case)X 1253(the)X 1371(newline)X 1645(will)X 1789(be)X 1885(ignored.)X 626 2666(Multiple)N 924(statements)X 1285(may)X 1446(be)X 1545(put)X 1670(on)X 1773(one)X 1912(line)X 2055(by)X 2159(separating)X 2513(them)X 2697(with)X 2863(a)X 2923(``;''.)X 3117(This)X 3283(applies)X 3534(to)X 3620(both)X 3786(the)X 3908(state-)X 626 2762(ments)N 844(within)X 1075(the)X 1200(action)X 1423(part)X 1575(of)X 1669(a)X 1732(pattern-action)X 2205(pair)X 2357(\(the)X 2509(usual)X 2705(case\),)X 2918(and)X 3060(to)X 3148(the)X 3272(pattern-action)X 3744(statements)X 626 2858(themselves.)N 3 f 9 s 482 2992(Patterns)N 1 f 10 s 626 3088(AWK)N 838(patterns)X 1112(may)X 1270(be)X 1366(one)X 1502(of)X 1589(the)X 1707(following:)X 3 f 914 3222(BEGIN)N 914 3318(END)N 914 3414(/)N 2 f 936(regular)X 1196(expression)X 3 f 1545(/)X 2 f 914 3510(relational)N 1249(expression)X 914 3606(pattern)N 3 f 1171(&&)X 2 f 1325(pattern)X 914 3702(pattern)N 3 f 9 f 1171(|)X 1173(||)X 1191(|)X 2 f 1227(pattern)X 914 3798(pattern)N 3 f 1171(?)X 2 f 1231(pattern)X 3 f 1488(:)X 2 f 1535(pattern)X 3 f 914 3894(\()N 2 f 941(pattern)X 3 f 1178(\))X 914 3990(!)N 2 f 961(pattern)X 914 4086(pattern1)N 3 f 1191(,)X 2 f 1231(pattern2)X 3 f 626 4220(BEGIN)N 1 f 904(and)X 3 f 1041(END)X 1 f 1231(are)X 1351(two)X 1492(special)X 1736(kinds)X 1930(of)X 2018(patterns)X 2294(which)X 2512(are)X 2633(not)X 2757(tested)X 2966(against)X 3215(the)X 3335(input.)X 3561(The)X 3708(action)X 3926(parts)X 626 4316(of)N 716(all)X 3 f 819(BEGIN)X 1 f 1099(patterns)X 1376(are)X 1497(merged)X 1760(as)X 1849(if)X 1920(all)X 2022(the)X 2142(statements)X 2502(had)X 2640(been)X 2814(written)X 3063(in)X 3147(a)X 3205(single)X 3 f 3418(BEGIN)X 1 f 3697(block.)X 3917(They)X 626 4412(are)N 747(executed)X 1055(before)X 1283(any)X 1421(of)X 1510(the)X 1630(input)X 1816(is)X 1891(read.)X 2072(Similarly,)X 2411(all)X 2513(the)X 3 f 2633(END)X 1 f 2824(blocks)X 3055(are)X 3176(merged,)X 3460(and)X 3599(executed)X 3908(when)X 626 4508(all)N 734(the)X 860(input)X 1052(is)X 1133(exhausted)X 1482(\(or)X 1604(when)X 1806(an)X 3 f 1910(exit)X 1 f 2063(statement)X 2398(is)X 2479(executed\).)X 3 f 2860(BEGIN)X 1 f 3145(and)X 3 f 3288(END)X 1 f 3484(patterns)X 3765(cannot)X 4006(be)X 626 4604(combined)N 978(with)X 1156(other)X 1357(patterns)X 1647(in)X 1745(pattern)X 2004(expressions.)X 3 f 2454(BEGIN)X 1 f 2747(and)X 3 f 2899(END)X 1 f 3104(patterns)X 3394(cannot)X 3645(have)X 3834(missing)X 626 4700(action)N 842(parts.)X 626 4834(For)N 3 f 760(/)X 2 f 782(regular)X 1045(expression)X 3 f 1394(/)X 1 f 1439(patterns,)X 1737(the)X 1859(associated)X 2213(statement)X 2544(is)X 2621(executed)X 2931(for)X 3049(each)X 3221(input)X 3409(line)X 3553(that)X 3697(matches)X 3984(the)X 626 4930(regular)N 874(expression.)X 1277(Regular)X 1551(expressions)X 1945(are)X 2064(the)X 2182(same)X 2367(as)X 2454(those)X 2643(in)X 2 f 2725(egrep)X 1 f 2914(\(1\),)X 3048(and)X 3184(are)X 3303(summarized)X 3715(below.)X 626 5064(A)N 2 f 708(relational)X 1047(expression)X 1 f 1414(may)X 1576(use)X 1707(any)X 1847(of)X 1938(the)X 2060(operators)X 2383(de\256ned)X 2643(below)X 2863(in)X 2950(the)X 3073(section)X 3325(on)X 3430(actions.)X 3722(These)X 3939(gen-)X 626 5160(erally)N 829(test)X 960(whether)X 1239(certain)X 1478(\256elds)X 1671(match)X 1887(certain)X 2126(regular)X 2374(expressions.)X 626 5294(The)N 3 f 773(&&)X 1 f 907(,)X 3 f 9 f 949(|)X 951(||)X 969(|)X 1 f (,)S 1027(and)X 3 f 1165(!)X 1 f 1214(operators)X 1535(are)X 1656(logical)X 1896(AND,)X 2112(logical)X 2352(OR,)X 2505(and)X 2643(logical)X 2884(NOT,)X 3092(respectively,)X 3523(as)X 3613(in)X 3698(C.)X 3814(They)X 4002(do)X 626 5390(short-circuit)N 1041(evaluation,)X 1418(also)X 1570(as)X 1659(in)X 1743(C,)X 1838(and)X 1976(are)X 2097(used)X 2266(for)X 2382(combining)X 2746(more)X 2933(primitive)X 3248(pattern)X 3493(expressions.)X 3909(As)X 4020(in)X 626 5486(most)N 801(languages,)X 1162(parentheses)X 1557(may)X 1715(be)X 1811(used)X 1978(to)X 2060(change)X 2308(the)X 2426(order)X 2616(of)X 2703(evaluation.)X 626 5620(The)N 3 f 774(?)X 820(:)X 1 f 870(operator)X 1161(is)X 1237(like)X 1380(the)X 1501(same)X 1689(operator)X 1980(in)X 2065(C.)X 2161(If)X 2238(the)X 2359(\256rst)X 2506(pattern)X 2752(is)X 2828(true)X 2976(then)X 3137(the)X 3258(pattern)X 3504(used)X 3674(for)X 3792(testing)X 4029(is)X 626 5716(the)N 744(second)X 987(pattern,)X 1250(otherwise)X 1582(it)X 1646(is)X 1719(the)X 1837(third.)X 2028(Only)X 2208(one)X 2344(of)X 2431(the)X 2549(second)X 2792(and)X 2928(third)X 3099(patterns)X 3373(is)X 3446(evaluated.)X 338 6144(Free)N 501(Software)X 811(Foundation)X 1740(Last)X 1898(change:)X 2168(August)X 2419(24)X 2519(1989)X 4042(4)X 5 p %%Page: 5 5 10 s 0 xH 0 xS 1 f 338 384(GAWK)N 601(\()X 641(1)X 694(\))X 1852(USER)X 2076(COMMANDS)X 3699(GAWK)X 3962(\()X 4002(1)X 4055(\))X 626 768(The)N 2 f 777(pattern1)X 3 f 1054(,)X 2 f 1100(pattern2)X 1 f 1403(form)X 1585(of)X 1678(an)X 1780(expression)X 2149(is)X 2228(called)X 2446(a)X 2508(range)X 2713(pattern.)X 3002(It)X 3077(matches)X 3366(all)X 3473(input)X 3664(lines)X 3842(starting)X 626 864(with)N 794(a)X 856(line)X 1002(that)X 1148(matches)X 2 f 1437(pattern1)X 1 f 1714(,)X 1760(and)X 1901(continuing)X 2268(until)X 2439(a)X 2500(line)X 2645(that)X 2790(matches)X 2 f 3078(pattern2)X 1 f 3355(,)X 3400(inclusive.)X 3734(It)X 3808(does)X 3980(not)X 626 960(combine)N 922(with)X 1084(any)X 1220(other)X 1405(sort)X 1545(of)X 1632(pattern)X 1875(expression.)X 3 f 9 s 482 1094(Regular)N 760(Expressions)X 1 f 10 s 626 1190(Regular)N 900(expressions)X 1294(are)X 1413(the)X 1531(extended)X 1841(kind)X 2003(found)X 2210(in)X 2 f 2292(egrep)X 1 f 2481(.)X 2541(They)X 2726(are)X 2845(composed)X 3190(of)X 3277(characters)X 3624(as)X 3711(follows:)X 2 f 914 1324(c)N 1 f 1202(matches)X 1485(the)X 1603 0.2422(non-metacharacter)AX 2 f 2222(c)X 1 f 2264(.)X 2 f 914 1458(\\c)N 1 f 1202(matches)X 1485(the)X 1603(literal)X 1810(character)X 2 f 2126(c)X 1 f 2168(.)X 3 f 914 1592(.)N 1 f 1202(matches)X 1485(any)X 1621(character)X 1937(except)X 2167(newline.)X 3 f 914 1726(\303)N 1 f 1202(matches)X 1485(the)X 1603(beginning)X 1943(of)X 2030(a)X 2086(line)X 2226(or)X 2313(a)X 2369(string.)X 3 f 914 1860($)N 1 f 1202(matches)X 1485(the)X 1603(end)X 1739(of)X 1826(a)X 1882(line)X 2022(or)X 2109(a)X 2165(string.)X 3 f 914 1994([)N 2 f 941(abc...)X 3 f 1123(])X 1 f 1202(character)X 1518(class,)X 1714(matches)X 1997(any)X 2133(of)X 2220(the)X 2338(characters)X 2 f 2685(abc...)X 1 f 2867(.)X 3 f 914 2128([\303)N 2 f 968(abc...)X 3 f 1150(])X 1 f 1202(negated)X 1472(character)X 1788(class,)X 1984(matches)X 2267(any)X 2403(character)X 2719(except)X 2 f 2949(abc...)X 1 f 3145(and)X 3281(newline.)X 2 f 914 2262(r1)N 3 f 9 f 991(|)X 993(|)X 2 f (r2)S 1 f 1202(alternation:)X 1587(matches)X 1870(either)X 2 f 2073(r1)X 1 f 2164(or)X 2 f 2251(r2)X 1 f 2328(.)X 2 f 914 2396(r1r2)N 1 f 1202(concatenation:)X 1690(matches)X 2 f 1973(r1)X 1 f 2050(,)X 2090(and)X 2226(then)X 2 f 2384(r2)X 1 f 2461(.)X 2 f 914 2530(r)N 3 f 951(+)X 1 f 1202(matches)X 1485(one)X 1621(or)X 1708(more)X 2 f 1893(r)X 1 f 1930('s.)X 2 f 914 2664(r)N 3 f 9 f 951(*)X 953(*)X 1 f 1202(matches)X 1485(zero)X 1644(or)X 1731(more)X 2 f 1916(r)X 1 f 1953('s.)X 2 f 914 2798(r)N 3 f 951(?)X 1 f 1202(matches)X 1485(zero)X 1644(or)X 1731(one)X 2 f 1867(r)X 1 f 1904('s.)X 3 f 914 2932(\()N 2 f 941(r)X 3 f 978(\))X 1 f 1202(grouping:)X 1533(matches)X 2 f 1816(r)X 1 f 1853(.)X 626 3028(The)N 771(escape)X 1006(sequences)X 1352(that)X 1492(are)X 1611(valid)X 1791(in)X 1873(string)X 2075(constants)X 2393(\(see)X 2543(below\))X 2786(are)X 2905(also)X 3054(legal)X 3230(in)X 3312(regular)X 3560(expressions.)X 3 f 9 s 482 3162(Actions)N 1 f 10 s 626 3258(Action)N 867(statements)X 1228(are)X 1350(enclosed)X 1654(in)X 1739(braces,)X 3 f 1988({)X 1 f 2043(and)X 3 f 2183(})X 1 f 2215(.)X 2279(Action)X 2521(statements)X 2883(consist)X 3129(of)X 3220(the)X 3342(usual)X 3535(assignment,)X 3939(con-)X 626 3354(ditional,)N 941(and)X 1108(looping)X 1403(statements)X 1792(found)X 2029(in)X 2141(most)X 2346(languages.)X 2737(The)X 2912(operators,)X 3281(control)X 3558(statements,)X 3966(and)X 626 3450(input/output)N 1036(statements)X 1394(available)X 1704(are)X 1823(patterned)X 2142(after)X 2310(those)X 2499(in)X 2581(C.)X 3 f 9 s 482 3584(Operators)N 1 f 10 s 626 3680(The)N 771(operators)X 1090(in)X 1172(AWK,)X 1404(in)X 1486(order)X 1676(of)X 1763(increasing)X 2113 0.3375(precedence,)AX 2516(are)X 3 f 914 3814(=)N 980(+=)X 9 f 1092(-)X 1094(-)X 3 f 1138(=)X 9 f 1204(*)X 1206(*)X 3 f (=)S 1312(/=)X 1400(%=)X 1546(\303=)X 1 f 1202 3910(Assignment.)N 1628(Both)X 1807(absolute)X 2098(assignment)X 3 f 2482(\()X 2 f 2509(var)X 3 f 2646(=)X 2 f 2716(value)X 3 f 2896(\))X 1 f 2947(and)X 3087(operator-assignment)X 3767(\(the)X 3917(other)X 1202 4006(forms\))N 1436(are)X 1555(supported.)X 3 f 914 4102(?:)N 1 f 1202(The)X 1351(C)X 1428(conditional)X 1812(expression.)X 2199(This)X 2365(has)X 2496(the)X 2618(form)X 2 f 2799(expr1)X 3 f 3013(?)X 2 f 3078(expr2)X 3 f 3292(:)X 2 f 3344(expr3)X 1 f 3527(.)X 3572(If)X 2 f 3651(expr1)X 1 f 3859(is)X 3937(true,)X 1202 4198(the)N 1324(value)X 1522(of)X 1613(the)X 1735(expression)X 2102(is)X 2 f 2179(expr2)X 1 f 2368(,)X 2412(otherwise)X 2747(it)X 2814(is)X 2 f 2890(expr3)X 1 f 3079(.)X 3142(Only)X 3325(one)X 3464(of)X 2 f 3554(expr2)X 1 f 3760(and)X 2 f 3899(expr3)X 1 f 1202 4294(is)N 1275(evaluated.)X 3 f 9 f 914 4390(|)N 916(||)X 934(|)X 1 f 1202(logical)X 1440(OR.)X 3 f 914 4486(&&)N 1 f 1202(logical)X 1440(AND.)X 3 f 914 4582(\304)N 961(!\304)X 1 f 1202(regular)X 1450(expression)X 1813(match,)X 2049(negated)X 2319(match.)X 3 f 914 4678(<)N 980(<=)X 1092(>)X 1158(>=)X 1270(!=)X 1363(==)X 1 f 1202 4774(the)N 1320(regular)X 1568(relational)X 1891(operators.)X 2 f 914 4870(blank)N 1 f 1202(string)X 1404(concatenation.)X 3 f 914 4966(+)N 9 f 980(-)X 982(-)X 1 f 1202(addition)X 1484(and)X 1620(subtraction.)X 3 f 9 f 914 5062(*)N 916(*)X 3 f 976(/)X 1018(%)X 1 f 1202(multiplication,)X 1690(division,)X 1987(and)X 2123(modulus.)X 3 f 914 5158(+)N 9 f 980(-)X 982(-)X 3 f 1046(!)X 1 f 1202(unary)X 1405(plus,)X 1578(unary)X 1781(minus,)X 2016(and)X 2152(logical)X 2390(negation.)X 3 f 914 5254(\303)N 1 f 1202(exponentiation)X 1698(\()X 3 f 9 f 1725(*)X 1727(**)X 1769(*)X 1 f 1829(may)X 1987(also)X 2136(be)X 2232(used,)X 2419(and)X 3 f 9 f 2555(*)X 2557(**)X 2599(*)X 3 f (=)S 1 f 2705(for)X 2819(the)X 2937(assignment)X 3317(operator\).)X 3 f 914 5350(++)N 9 f 1026(-)X 1028(-)X 1078(-)X 1080(-)X 1 f 1202(increment)X 1543(and)X 1679(decrement,)X 2054(both)X 2216(pre\256x)X 2423(and)X 2559(post\256x.)X 3 f 914 5446($)N 1 f 1202(\256eld)X 1364 0.4028(reference.)AX 3 f 9 s 482 5580(Control)N 752(Statements)X 1 f 10 s 338 6144(Free)N 501(Software)X 811(Foundation)X 1740(Last)X 1898(change:)X 2168(August)X 2419(24)X 2519(1989)X 4042(5)X 6 p %%Page: 6 6 10 s 0 xH 0 xS 1 f 338 384(GAWK)N 601(\()X 641(1)X 694(\))X 1852(USER)X 2076(COMMANDS)X 3699(GAWK)X 3962(\()X 4002(1)X 4055(\))X 626 768(The)N 771(control)X 1018(statements)X 1376(are)X 1495(as)X 1582(follows:)X 3 f 914 902(if)N 983(\()X 2 f 1010(condition)X 3 f 1312(\))X 2 f 1359(statement)X 1 f 1686([)X 3 f 1733(else)X 2 f 1878(statement)X 1 f 2205(])X 3 f 914 998(while)N 1116(\()X 2 f 1143(condition)X 3 f 1445(\))X 2 f 1492(statement)X 3 f 914 1094(do)N 2 f 1018(statement)X 3 f 1345(while)X 1547(\()X 2 f 1574(condition)X 3 f 1876(\))X 914 1190(for)N 1037(\()X 2 f 1064(expr1)X 3 f 1247(;)X 2 f 1294(expr2)X 3 f 1477(;)X 2 f 1524(expr3)X 3 f 1707(\))X 2 f 1754(statement)X 3 f 914 1286(for)N 1037(\()X 2 f 1064(var)X 3 f 1191(in)X 2 f 1277(array)X 3 f 1455(\))X 2 f 1502(statement)X 3 f 914 1382(break)N 914 1478(continue)N 914 1574(delete)N 2 f 1135(array)X 3 f 1319([)X 2 f 1352(index)X 3 f 1532(])X 914 1670(exit)N 1 f 1059([)X 2 f 1106(expression)X 1 f 1469(])X 3 f 914 1766({)N 2 f 966(statements)X 3 f 1324(})X 9 s 482 1900(I/O)N 604(Statements)X 1 f 10 s 626 1996(The)N 771(input/output)X 1181(statements)X 1539(are)X 1658(as)X 1745(follows:)X 3 f 914 2130(close\()N 2 f 1106(\256lename)X 3 f 1384(\))X 1 f 1202 2226(close)N 1387(\256le)X 1509(\(or)X 1623(pipe,)X 1801(see)X 1924(below\).)X 3 f 914 2322(getline)N 1 f 1202(set)X 3 f 1311($0)X 1 f 1411(from)X 1587(next)X 1745(input)X 1929(record;)X 2177(set)X 3 f 2286(NF)X 1 f 2393(,)X 3 f 2433(NR)X 1 f 2549(,)X 3 f 2589(FNR)X 1 f 2754(.)X 3 f 914 2418(getline)N 1161(<)X 2 f 1207(\256le)X 1 f 1202 2514(set)N 3 f 1311($0)X 1 f 1411(from)X 1587(next)X 1745(record)X 1971(of)X 2 f 2058(\256le)X 1 f 2162(;)X 2204(set)X 3 f 2313(NF)X 1 f 2420(.)X 3 f 914 2610(getline)N 2 f 1161(var)X 1 f 1202 2706(set)N 2 f 1311(var)X 1 f 1438(from)X 1614(next)X 1772(input)X 1956(record;)X 2204(set)X 3 f 2313(NF)X 1 f 2420(,)X 3 f 2460(FNR)X 1 f 2625(.)X 3 f 914 2802(getline)N 2 f 1161(var)X 3 f 1294(<)X 2 f 1340(\256le)X 1 f 1202 2898(set)N 2 f 1311(var)X 1 f 1438(from)X 1614(next)X 1772(record)X 1998(of)X 2 f 2085(\256le)X 1 f 2189(.)X 3 f 914 2994(next)N 1 f 1202(Stop)X 1378(processing)X 1751(the)X 1879(current)X 2137(input)X 2331(record.)X 2587(The)X 2742(next)X 2910(input)X 3104(record)X 3340(is)X 3423(read)X 3592(and)X 3739(processing)X 1202 3090(starts)N 1404(over)X 1580(with)X 1755(the)X 1886(\256rst)X 2043(pattern)X 2299(in)X 2394(the)X 2525(AWK)X 2750(program.)X 3074(If)X 3160(the)X 3290(end)X 3438(of)X 3537(the)X 3667(input)X 3863(data)X 4029(is)X 1202 3186(reached,)N 1493(the)X 3 f 1611(END)X 1 f 1800(block\(s\),)X 2103(if)X 2172(any,)X 2328(are)X 2447(executed.)X 3 f 914 3282(print)N 1 f 1202(prints)X 1404(the)X 1522(current)X 1770(record.)X 3 f 914 3378(print)N 2 f 1107(expr-list)X 1 f 1202 3474(prints)N 1404(expressions.)X 3 f 914 3570(print)N 2 f 1107(expr-list)X 3 f 1400(>)X 2 f 1446(\256le)X 1 f 1202 3666(prints)N 1404(expressions)X 1798(on)X 2 f 1898(\256le)X 1 f 2002(.)X 3 f 914 3762(printf)N 2 f 1134(fmt,)X 1276(expr-list)X 1 f 1202 3858(format)N 1436(and)X 1572(print.)X 3 f 914 3954(printf)N 2 f 1134(fmt,)X 1276(expr-list)X 3 f 1569(>)X 2 f 1615(\256le)X 1 f 1202 4050(format)N 1436(and)X 1572(print)X 1743(on)X 2 f 1843(\256le)X 1 f 1947(.)X 3 f 914 4146(system\()N 2 f 1173(cmd-line)X 3 f 1460(\))X 1 f 1202 4242(execute)N 1470(the)X 1590(command)X 2 f 1928(cmd-line)X 1 f 2215(,)X 2257(and)X 2395(return)X 2609(the)X 2729(exit)X 2871(status.)X 3115(\(This)X 3306(may)X 3466(not)X 3590(be)X 3689(available)X 4002(on)X 1202 4338(systems)N 1475(besides)X 9 s 1729(UNIX)X 10 s 1929(and)X 9 s 2063(GNU)X 10 s (.\))S 626 4472(Other)N 838(input/output)X 1257(redirections)X 1665(are)X 1793(also)X 1951(allowed.)X 2254(For)X 3 f 2394(print)X 1 f 2596(and)X 3 f 2741(printf)X 1 f (,)S 3 f 2991(>>)X 2 f 3083(\256le)X 1 f 3211(appends)X 3504(output)X 3738(to)X 3830(the)X 2 f 3958(\256le)X 1 f 4062(,)X 626 4568(while)N 3 f 9 f 826(|)X 828(|)X 2 f 866(command)X 1 f 1200(writes)X 1417(on)X 1518(a)X 1575(pipe.)X 1774(In)X 1862(a)X 1919(similar)X 2162(fashion,)X 2 f 2439(command)X 3 f 9 f 2778(|)X 2780(|)X 3 f 2817(getline)X 1 f 3065(pipes)X 3255(into)X 3 f 3400(getline)X 1 f 3627(.)X 3 f 3688(Getline)X 1 f 3958(will)X 626 4664(return)N 838(0)X 898(on)X 998(end)X 1134(of)X 1221(\256le,)X 1363(and)X 9 f 1499(-)X 1 f 1543(1)X 1603(on)X 1703(an)X 1799(error.)X 3 f 9 s 482 4798(The)N 2 f 632(printf)X 3 f 822(Statement)X 1 f 10 s 626 4894(The)N 789(AWK)X 1019(versions)X 1324(of)X 1429(the)X 3 f 1566(printf)X 1 f 1805(and)X 3 f 1960(sprintf)X 1 f 2230(\(see)X 2399(below\))X 2661(functions)X 2998(accept)X 3243(the)X 3380(following)X 3730(conversion)X 626 4990(speci\256cation)N 1051(formats:)X 3 f 914 5124(%c)N 1 f 1202(An)X 1323(ASCII)X 1555(character.)X 1914(If)X 1991(the)X 2112(argument)X 2438(used)X 2608(for)X 3 f 2725(%c)X 1 f 2864(is)X 2940(numeric,)X 3247(it)X 3315(is)X 3392(treated)X 3635(as)X 3726(a)X 3786(character)X 1202 5220(and)N 1340(printed.)X 1629(Otherwise,)X 2001(the)X 2121(argument)X 2446(is)X 2521(assumed)X 2819(to)X 2903(be)X 3000(a)X 3057(string,)X 3280(and)X 3417(the)X 3536(only)X 3699(\256rst)X 3844(charac-)X 1202 5316(ter)N 1307(of)X 1394(that)X 1534(string)X 1736(is)X 1809(printed.)X 3 f 914 5450(%d)N 1 f 1202(A)X 1280(decimal)X 1554(number)X 1819(\(the)X 1964(integer)X 2207(part\).)X 3 f 914 5584(%i)N 1 f 1202(Just)X 1346(like)X 3 f 1486(%d)X 1 f 1610(.)X 3 f 914 5718(%e)N 1 f 1202(A)X 1280(\257oating)X 1544(point)X 1728(number)X 1993(of)X 2080(the)X 2198(form)X 3 f 2374([)X 9 f 2401(-)X 2403(-)X 3 f 2447(]d.ddddddE[+)X 9 f 2934(-)X 2936(-)X 3 f 2980(]dd)X 1 f 3095(.)X 3 f 914 5852(%f)N 1 f 1202(A)X 1280(\257oating)X 1544(point)X 1728(number)X 1993(of)X 2080(the)X 2198(form)X 3 f 2374([)X 9 f 2401(-)X 2403(-)X 3 f 2447 -0.4125(]ddd.dddddd)AX 1 f 2890(.)X 338 6236(Free)N 501(Software)X 811(Foundation)X 1740(Last)X 1898(change:)X 2168(August)X 2419(24)X 2519(1989)X 4042(6)X 7 p %%Page: 7 7 10 s 0 xH 0 xS 1 f 338 384(GAWK)N 601(\()X 641(1)X 694(\))X 1852(USER)X 2076(COMMANDS)X 3699(GAWK)X 3962(\()X 4002(1)X 4055(\))X 3 f 914 768(%g)N 1 f 1202(Use)X 3 f 1347(e)X 1 f 1403(or)X 3 f 1490(f)X 1 f 1537(conversion,)X 1929(whichever)X 2284(is)X 2357(shorter,)X 2620(with)X 2782(nonsigni\256cant)X 3255(zeros)X 3445(suppressed.)X 3 f 914 902(%o)N 1 f 1202(An)X 1320(unsigned)X 1629(octal)X 1805(number)X 2070(\(again,)X 2311(an)X 2407(integer\).)X 3 f 914 1036(%s)N 1 f 1202(A)X 1280(character)X 1596(string.)X 3 f 914 1170(%x)N 1 f 1202(An)X 1320(unsigned)X 1629(hexadecimal)X 2055(number)X 2320(\(an)X 2443(integer\).)X 3 f 914 1304(%X)N 1 f 1202(Like)X 3 f 1369(%x)X 1 f (,)S 1529(but)X 1651(using)X 3 f 1844(ABCDEF)X 1 f 2193(instead)X 2440(of)X 3 f 2527(abcdef)X 1 f 2754(.)X 3 f 914 1438(%%)N 1 f 1202(A)X 1280(single)X 3 f 1491(%)X 1 f 1591(character;)X 1929(no)X 2029(argument)X 2352(is)X 2425(converted.)X 626 1572(There)N 834(are)X 953(optional,)X 1255(additional)X 1595(parameters)X 1968(that)X 2108(may)X 2266(lie)X 2366(between)X 2654(the)X 3 f 2772(%)X 1 f 2872(and)X 3008(the)X 3126(control)X 3373(letter:)X 3 f 9 f 914 1706(-)N 916(-)X 1 f 1202(The)X 1347(expression)X 1710(should)X 1943(be)X 2039(left-justi\256ed)X 2450(within)X 2674(its)X 2769(\256eld.)X 2 f 914 1840(width)N 1 f 1202(The)X 1350(\256eld)X 1515(should)X 1751(be)X 1850(padded)X 2105(to)X 2190(this)X 2328(width.)X 2553(If)X 2631(the)X 2753(number)X 3022(has)X 3153(a)X 3213(leading)X 3473(zero,)X 3656(then)X 3818(the)X 3940(\256eld)X 1202 1936(will)N 1346(be)X 1442(padded)X 1694(with)X 1856(zeros.)X 2086(Otherwise)X 2436(it)X 2500(is)X 2573(padded)X 2825(with)X 2987(blanks.)X 3 f 914 2070(.)N 2 f (prec)S 1 f 1202(A)X 1286(number)X 1557(indicating)X 1903(the)X 2027(maximum)X 2377(width)X 2585(of)X 2679(strings)X 2919(or)X 3013(digits)X 3217(to)X 3306(the)X 3431(right)X 3609(of)X 3703(the)X 3828(decimal)X 1202 2166(point.)N 626 2300(The)N 773(dynamic)X 2 f 1071(width)X 1 f 1270(and)X 2 f 1408(prec)X 1 f 1573(capabilities)X 1960(of)X 2049(the)X 2169(C)X 2244(library)X 3 f 2480(printf)X 1 f 2702(routines)X 2982(are)X 3103(not)X 3227(supported.)X 3606(However,)X 3944(they)X 626 2396(may)N 792(be)X 896(simulated)X 1235(by)X 1343(using)X 1544(the)X 1670(AWK)X 1889(concatenation)X 2362(operation)X 2692(to)X 2781(build)X 2972(up)X 3079(a)X 3142(format)X 3383(speci\256cation)X 3815(dynami-)X 626 2492(cally.)N 3 f 9 s 482 2626(Special)N 732(File)X 878(Names)X 1 f 10 s 626 2722(When)N 843(doing)X 1050(I/O)X 1182(redirection)X 1555(from)X 1736(either)X 3 f 1944(print)X 1 f 2142(or)X 3 f 2234(printf)X 1 f 2459(into)X 2609(a)X 2671(\256le,)X 2819(or)X 2912(via)X 3 f 3036(getline)X 1 f 3289(from)X 3471(a)X 3533(\256le,)X 2 f 3681(gawk)X 1 f 3876(recog-)X 626 2818(nizes)N 819(certain)X 1066(special)X 1317(\256lenames)X 1652(internally.)X 2026(These)X 2245(\256lenames)X 2579(allow)X 2784(access)X 3017(to)X 3106(open)X 3289(\256le)X 3418(descriptors)X 3797(inherited)X 626 2914(from)N 2 f 802(gawk)X 1 f 977('s)X 1055(parent)X 1276(process)X 1537(\(usually)X 1815(the)X 1933(shell\).)X 2171(The)X 2316(\256lenames)X 2643(are:)X 3 f 914 3048(/dev/stdin)N 1 f 1202 3144(The)N 1347(standard)X 1639(input.)X 3 f 914 3278(/dev/stdout)N 1 f 1202 3374(The)N 1347(standard)X 1639(output.)X 3 f 914 3508(/dev/stderr)N 1 f 1202 3604(The)N 1347(standard)X 1639(error)X 1816(output.)X 3 f 914 3738(/dev/fd/)N 2 f 1177(n)X 1 f 1202 3834(The)N 1347(\256le)X 1469(denoted)X 1743(by)X 1843(the)X 1961(open)X 2137(\256le)X 2259(descriptor)X 2 f 2600(n)X 1 f 2646(.)X 626 3968(These)N 838(are)X 957(particularly)X 1347(useful)X 1563(for)X 1677(error)X 1854(messages.)X 2197(For)X 2328(example:)X 3 f 914 4102(print)N 1107("You)X 1313(blew)X 1493(it!")X 1633(>)X 1699("/dev/stderr")X 1 f 626 4236(whereas)N 910(you)X 1050(would)X 1270(otherwise)X 1602(have)X 1774(to)X 1856(use)X 3 f 914 4370(print)N 1107("You)X 1313(blew)X 1493(it!")X 9 f 1633(|)X 1635(|)X 3 f 1671("cat)X 1838(1>&2")X 1 f 626 4504(These)N 838(\256le)X 960(names)X 1185(may)X 1343(also)X 1492(be)X 1588(used)X 1755(on)X 1855(the)X 1973(command)X 2309(line)X 2449(to)X 2531(name)X 2725(data)X 2879(\256les.)X 3 f 9 s 482 4638(Numeric)N 780(Functions)X 1 f 10 s 626 4734(AWK)N 838(has)X 965(the)X 1083(following)X 1414(pre-de\256ned)X 1800(arithmetic)X 2145(functions:)X 3 f 914 4868(atan2\()N 2 f 1132(y)X 3 f 1174(,)X 2 f 1214(x)X 3 f 1256(\))X 1 f 1202 4964(returns)N 1445(the)X 1563(arctangent)X 1918(of)X 2 f 2005(y/x)X 1 f 2119(in)X 2201(radians.)X 3 f 914 5098(cos\()N 2 f 1048(expr)X 3 f 1197(\))X 1 f 1202 5194(returns)N 1445(the)X 1563(cosine)X 1788(in)X 1870(radians.)X 3 f 914 5328(exp\()N 2 f 1061(expr)X 3 f 1210(\))X 1 f 1202 5424(the)N 1320(exponential)X 1714(function.)X 3 f 914 5558(int\()N 2 f (expr)S 3 f 1183(\))X 1 f 1202 5654(truncates)N 1512(to)X 1594(integer.)X 3 f 914 5788(log\()N 2 f 1043(expr)X 3 f 1192(\))X 1 f 338 6172(Free)N 501(Software)X 811(Foundation)X 1740(Last)X 1898(change:)X 2168(August)X 2419(24)X 2519(1989)X 4042(7)X 8 p %%Page: 8 8 10 s 0 xH 0 xS 1 f 338 384(GAWK)N 601(\()X 641(1)X 694(\))X 1852(USER)X 2076(COMMANDS)X 3699(GAWK)X 3962(\()X 4002(1)X 4055(\))X 1202 768(the)N 1320(natural)X 1563(logarithm)X 1894(function.)X 3 f 914 902(rand\(\))N 1 f 1202(returns)X 1445(a)X 1501(random)X 1766(number)X 2031(between)X 2319(0)X 2379(and)X 2515(1.)X 3 f 914 1036(sin\()N 2 f 1038(expr)X 3 f 1187(\))X 1 f 1202 1132(returns)N 1445(the)X 1563(sine)X 1712(in)X 1794(radians.)X 3 f 914 1266(sqrt\()N 2 f 1079(expr)X 3 f 1228(\))X 1 f 1202 1362(the)N 1320(square)X 1550(root)X 1699(function.)X 3 f 914 1496(srand\()N 2 f 1136(expr)X 3 f 1285(\))X 1 f 1202 1592(use)N 2 f 1330(expr)X 1 f 1494(as)X 1582(a)X 1639(new)X 1794(seed)X 1959(for)X 2075(the)X 2195(random)X 2462(number)X 2729(generator.)X 3075(If)X 3151(no)X 2 f 3253(expr)X 1 f 3418(is)X 3493(provided,)X 3820(the)X 3940(time)X 1202 1688(of)N 1290(day)X 1427(will)X 1572(be)X 1669(used.)X 1877(The)X 2022(return)X 2234(value)X 2428(is)X 2501(the)X 2619(previous)X 2915(seed)X 3078(for)X 3192(the)X 3310(random)X 3575(number)X 3840(genera-)X 1202 1784(tor.)N 3 f 9 s 482 1918(String)N 704(Functions)X 1 f 10 s 626 2014(AWK)N 838(has)X 965(the)X 1083(following)X 1414(pre-de\256ned)X 1800(string)X 2002(functions:)X 3 f 914 2148(gsub\()N 2 f 1100(r)X 3 f 1131(,)X 2 f 1171(s)X 3 f 1202(,)X 2 f 1242(t)X 3 f 1264(\))X 1 f 1202 2244(for)N 1316(each)X 1485(substring)X 1799(matching)X 2118(the)X 2237(regular)X 2486(expression)X 2 f 2850(r)X 1 f 2902(in)X 2985(the)X 3104(string)X 2 f 3307(t)X 1 f 3335(,)X 3376(substitute)X 3703(the)X 3822(string)X 2 f 4025(s)X 1 f 4062(,)X 1202 2340(and)N 1338(return)X 1550(the)X 1668(number)X 1933(of)X 2020(substitutions.)X 2483(If)X 2 f 2557(t)X 1 f 2599(is)X 2672(not)X 2794(supplied,)X 3105(use)X 3 f 3232($0)X 1 f (.)S 3 f 914 2436(index\()N 2 f 1127(s)X 3 f 1164(,)X 2 f 1204(t)X 3 f 1232(\))X 1 f 1202 2532(returns)N 1445(the)X 1563(index)X 1761(of)X 1848(the)X 1966(string)X 2 f 2168(t)X 1 f 2210(in)X 2292(the)X 2410(string)X 2 f 2612(s)X 1 f 2649(,)X 2689(or)X 2776(0)X 2836(if)X 2 f 2905(t)X 1 f 2947(is)X 3020(not)X 3142(present.)X 3 f 914 2628(length\()N 2 f (s)S 3 f 1191(\))X 1 f 1202 2724(returns)N 1445(the)X 1563(length)X 1783(of)X 1870(the)X 1988(string)X 2 f 2190(s)X 1 f 2227(.)X 3 f 914 2820(match\()N 2 f 1155(s)X 3 f 1192(,)X 2 f 1232(r)X 3 f 1269(\))X 1 f 1202 2916(returns)N 1445(the)X 1563(position)X 1840(in)X 2 f 1922(s)X 1 f 1973(where)X 2190(the)X 2309(regular)X 2558(expression)X 2 f 2922(r)X 1 f 2974(occurs,)X 3225(or)X 3313(0)X 3374(if)X 2 f 3444(r)X 1 f 3496(is)X 3570(not)X 3693(present,)X 3966(and)X 1202 3012(sets)N 1342(the)X 1460(values)X 1685(of)X 3 f 1772(RSTART)X 1 f 2116(and)X 3 f 2252(RLENGTH)X 1 f 2651(.)X 3 f 914 3108(split\()N 2 f 1087(s)X 3 f 1118(,)X 2 f 1158(a)X 3 f (,)S 2 f 1238(r)X 3 f 1269(\))X 1 f 1202 3204(splits)N 1394(the)X 1516(string)X 2 f 1722(s)X 1 f 1777(into)X 1925(the)X 2047(array)X 2 f 2237(a)X 1 f 2302(on)X 2407(the)X 2530(regular)X 2783(expression)X 2 f 3151(r)X 1 f 3188(,)X 3233(and)X 3374(returns)X 3622(the)X 3745(number)X 4015(of)X 1202 3300(\256elds.)N 1415(If)X 2 f 1489(r)X 1 f 1540(is)X 1613(omitted,)X 3 f 1897(FS)X 1 f 2010(is)X 2083(used)X 2250(instead.)X 3 f 914 3396(sprintf\()N 2 f 1172(fmt)X 3 f 1280(,)X 2 f 1320(expr-list)X 3 f 1593(\))X 1 f 1202 3492(prints)N 2 f 1404(expr-list)X 1 f 1691(according)X 2028(to)X 2 f 2110(fmt)X 1 f 2218(,)X 2258(and)X 2394(returns)X 2637(the)X 2755(resulting)X 3055(string.)X 3 f 914 3588(sub\()N 2 f 1060(r)X 3 f 1091(,)X 2 f 1131(s)X 3 f 1162(,)X 2 f 1202(t)X 3 f 1224(\))X 1 f 1202 3684(this)N 1337(is)X 1410(just)X 1545(like)X 3 f 1685(gsub)X 1 f 1844(,)X 1884(but)X 2006(only)X 2168(the)X 2286(\256rst)X 2430(matching)X 2748(substring)X 3061(is)X 3134(replaced.)X 3 f 914 3780(substr\()N 2 f (s)S 3 f 1185(,)X 2 f 1225(i)X 3 f 1247(,)X 2 f 1287(n)X 3 f (\))S 1 f 1202 3876(returns)N 1445(the)X 2 f 1563(n)X 1 f 1609 0.3750(-character)AX 1952(substring)X 2265(of)X 2 f 2352(s)X 1 f 2403(starting)X 2663(at)X 2 f 2741(i)X 1 f 2769(.)X 2829(If)X 2 f 2903(n)X 1 f 2963(is)X 3036(omitted,)X 3320(the)X 3438(rest)X 3574(of)X 2 f 3661(s)X 1 f 3712(is)X 3785(used.)X 3 f 914 3972(tolower\()N 2 f 1200(str)X 3 f 1290(\))X 1 f 1202 4068(returns)N 1446(a)X 1503(copy)X 1680(of)X 1768(the)X 1887(string)X 2 f 2090(str)X 1 f 2180(,)X 2221(with)X 2385(all)X 2487(the)X 2607(upper-case)X 2978(characters)X 3327(in)X 2 f 3411(str)X 1 f 3517(translated)X 3851(to)X 3935(their)X 1202 4164(corresponding)N 1681(lower-case)X 2050(counterparts.)X 2507(Non-alphabetic)X 3022(characters)X 3369(are)X 3488(left)X 3615(unchanged.)X 3 f 914 4260(toupper\()N 2 f 1212(str)X 3 f 1302(\))X 1 f 1202 4356(returns)N 1446(a)X 1503(copy)X 1680(of)X 1768(the)X 1887(string)X 2 f 2090(str)X 1 f 2180(,)X 2221(with)X 2385(all)X 2487(the)X 2607(lower-case)X 2978(characters)X 3327(in)X 2 f 3411(str)X 1 f 3517(translated)X 3851(to)X 3935(their)X 1202 4452(corresponding)N 1681(upper-case)X 2050(counterparts.)X 2507(Non-alphabetic)X 3022(characters)X 3369(are)X 3488(left)X 3615(unchanged.)X 3 f 9 s 482 4586(String)N 704(Constants)X 1 f 10 s 626 4682(String)N 845(constants)X 1167(in)X 1253(AWK)X 1469(are)X 1592(sequences)X 1942(of)X 2033(characters)X 2384(enclosed)X 2689(between)X 2982(double)X 3225(quotes)X 3459(\()X 3 f 3486(")X 1 f 3530(\).)X 3602(Within)X 3849(strings,)X 626 4778(certain)N 2 f 865(escape)X 1104(sequences)X 1 f 1450(are)X 1569(recognized,)X 1962(as)X 2049(in)X 2131(C.)X 2224(These)X 2436(are:)X 3 f 914 4912(\\\\)N 1 f 1202(A)X 1280(literal)X 1487(backslash.)X 3 f 914 5046(\\a)N 1 f 1202(The)X 1347(``alert'')X 1618(character;)X 1956(usually)X 2207(the)X 2325(ASCII)X 2554(BEL)X 2725(character.)X 3 f 914 5180(\\b)N 1 f 1202(backspace.)X 3 f 914 5314(\\f)N 1 f 1202(form-feed.)X 3 f 914 5448(\\n)N 1 f 1202(new)X 1356(line.)X 3 f 914 5582(\\r)N 1 f 1202(carriage)X 1482(return.)X 3 f 914 5716(\\t)N 1 f 1202(horizontal)X 1547(tab.)X 3 f 914 5850(\\v)N 1 f 1202(vertical)X 1463(tab.)X 338 6234(Free)N 501(Software)X 811(Foundation)X 1740(Last)X 1898(change:)X 2168(August)X 2419(24)X 2519(1989)X 4042(8)X 9 p %%Page: 9 9 10 s 0 xH 0 xS 1 f 338 384(GAWK)N 601(\()X 641(1)X 694(\))X 1852(USER)X 2076(COMMANDS)X 3699(GAWK)X 3962(\()X 4002(1)X 4055(\))X 3 f 914 768(\\x)N 2 f 982(hex)X 1114(digits)X 1 f 1202 864(The)N 1359(character)X 1687(represented)X 2090(by)X 2202(the)X 2332(string)X 2546(of)X 2645(hexadecimal)X 3083(digits)X 3292(following)X 3635(the)X 3 f 3765(\\x)X 1 f 3827(.)X 3899(As)X 4020(in)X 1202 960(ANSI)N 1421(C,)X 1526(all)X 1638(following)X 1981(hexadecimal)X 2419(digits)X 2628(are)X 2759(considered)X 3138(part)X 3294(of)X 3392(the)X 3521(escape)X 3767(sequence.)X 1202 1056(\(This)N 1412(feature)X 1677(should)X 1931(tell)X 2074(us)X 2186(something)X 2561(about)X 2781(language)X 3113(design)X 3364(by)X 3486(committee.\))X 3933(E.g.,)X 1202 1152("\\x1B")N 1443(is)X 1516(the)X 1634(ASCII)X 1863(ESC)X 2029(\(escape\))X 2318(character.)X 3 f 914 1286(\\)N 2 f 936(ddd)X 1 f 1202(The)X 1350(character)X 1669(represented)X 2063(by)X 2166(the)X 2287(1-,)X 2397(2-,)X 2507(or)X 2597(3-digit)X 2833(sequence)X 3152(of)X 3243(octal)X 3423(digits.)X 3644(E.g.)X 3797("\\033")X 4029(is)X 1202 1382(the)N 1320(ASCII)X 1549(ESC)X 1715(\(escape\))X 2004(character.)X 3 f 914 1516(\\)N 2 f 936(c)X 1 f 1202(The)X 1347(literal)X 1554(character)X 2 f 1870(c)X 1 f 1918(.)X 626 1650(The)N 782(escape)X 1028(sequences)X 1385(may)X 1554(also)X 1715(be)X 1823(used)X 2002(inside)X 2225(constant)X 2524(regular)X 2784(expressions)X 3190(\(e.g.,)X 3 f 3385(/[)X 3454(\\t\\f\\n\\r\\v]/)X 1 f 3819(matches)X 626 1746(whitespace)N 1003 0.2955(characters\).)AX 3 f 9 s 338 1880(FUNCTIONS)N 1 f 10 s 626 1976(Functions)N 961(in)X 1043(AWK)X 1255(are)X 1374(de\256ned)X 1630(as)X 1717(follows:)X 3 f 914 2110(function)N 2 f 1218(name)X 3 f 1392(\()X 2 f 1419(parameter)X 1773(list)X 3 f 1870(\))X 1917({)X 2 f 1969(statements)X 3 f 2327(})X 1 f 626 2244(Functions)N 978(are)X 1114(executed)X 1437(when)X 1648(called)X 1877(from)X 2070(within)X 2311(the)X 2446(action)X 2679(parts)X 2872(of)X 2976(regular)X 3241(pattern-action)X 3724(statements.)X 626 2340(Actual)N 862(parameters)X 1237(supplied)X 1530(in)X 1614(the)X 1733(function)X 2021(call)X 2158(are)X 2278(used)X 2446(to)X 2529(instantiate)X 2879(the)X 2998(formal)X 3233(parameters)X 3607(declared)X 3901(in)X 3984(the)X 626 2436(function.)N 953(Arrays)X 1192(are)X 1311(passed)X 1545(by)X 1645 0.4028(reference,)AX 1986(other)X 2171(variables)X 2481(are)X 2600(passed)X 2834(by)X 2934(value.)X 626 2570(Since)N 831(functions)X 1156(were)X 1340(not)X 1469(originally)X 1807(part)X 1959(of)X 2053(the)X 2178(AWK)X 2397(language,)X 2734(the)X 2859(provision)X 3189(for)X 3311(local)X 3495(variables)X 3813(is)X 3894(rather)X 626 2666(clumsy:)N 900(they)X 1059(are)X 1179(declared)X 1473(as)X 1561(extra)X 1742(parameters)X 2115(in)X 2197(the)X 2315(parameter)X 2657(list.)X 2794(The)X 2939(convention)X 3315(is)X 3388(to)X 3470(separate)X 3754(local)X 3930(vari-)X 626 2762(ables)N 811(from)X 987(real)X 1128(parameters)X 1501(by)X 1601(extra)X 1782(spaces)X 2012(in)X 2094(the)X 2212(parameter)X 2554(list.)X 2691(For)X 2822(example:)X 3 f 914 2896(function)N 1238(f\(p,)X 1376(q,)X 1540(a,)X 1620(b\))X 1711({)X 1778(#)X 1838(a)X 1898(&)X 1985(b)X 2049(are)X 2181(local)X 1778 2992(.....)N 1898(})X 914 3184(/abc/)N 1202({)X 1254(...)X 1334(;)X 1381(f\(1,)X 1515(2\))X 1602(;)X 1649(...)X 1729(})X 1 f 626 3318(The)N 780(left)X 916(parenthesis)X 1306(in)X 1397(a)X 1462(function)X 1758(call)X 1903(is)X 1985(required)X 2282(to)X 2374(immediately)X 2804(follow)X 3043(the)X 3171(function)X 3468(name,)X 3692(without)X 3966(any)X 626 3414(intervening)N 1015(white)X 1217(space.)X 1460(This)X 1626(is)X 1703(to)X 1789(avoid)X 1991(a)X 2051(syntactic)X 2360(ambiguity)X 2708(with)X 2874(the)X 2996(concatenation)X 3465(operator.)X 3796(This)X 3961(res-)X 626 3510(triction)N 877(does)X 1044(not)X 1166(apply)X 1364(to)X 1446(the)X 1564(built-in)X 1819(functions)X 2137(listed)X 2330(above.)X 626 3644(Functions)N 966(may)X 1129(call)X 1270(each)X 1443(other)X 1633(and)X 1774(may)X 1937(be)X 2038(recursive.)X 2398(Function)X 2707(parameters)X 3085(used)X 3257(as)X 3349(local)X 3530(variables)X 3846(are)X 3971(ini-)X 626 3740(tialized)N 882(to)X 964(the)X 1082(null)X 1226(string)X 1428(and)X 1564(the)X 1682(number)X 1947(zero)X 2106(upon)X 2286(function)X 2573(invocation.)X 626 3874(The)N 771(word)X 3 f 956(func)X 1 f 1127(may)X 1285(be)X 1381(used)X 1548(in)X 1630(place)X 1820(of)X 3 f 1907(function)X 1 f 2191(.)X 3 f 9 s 338 4008(EXAMPLES)N 1 f 10 s 626 4104(Print)N 801(and)X 937(sort)X 1077(the)X 1195(login)X 1379(names)X 1604(of)X 1691(all)X 1791(users:)X 3 f 914 4296(BEGIN)N 1202({)X 1254(FS)X 1367(=)X 1433(":")X 1568(})X 1202 4392({)N 1254(print)X 1447($1)X 9 f 1547(|)X 1549(|)X 3 f 1585("sort")X 1827(})X 1 f 626 4584(Count)N 841(lines)X 1012(in)X 1094(a)X 1150(\256le:)X 3 f 1202 4776({)N 1254(nlines++)X 1565(})X 914 4872(END)N 1202({)X 1254(print)X 1447(nlines)X 1666(})X 1 f 626 5064(Precede)N 901(each)X 1069(line)X 1209(by)X 1309(its)X 1404(number)X 1669(in)X 1751(the)X 1869(\256le:)X 3 f 914 5256({)N 966(print)X 1159(FNR,)X 1364($0)X 1464(})X 1 f 626 5448(Concatenate)N 1043(and)X 1179(line)X 1319(number)X 1584(\(a)X 1667(variation)X 1972(on)X 2072(a)X 2128(theme\):)X 3 f 914 5640({)N 966(print)X 1159(NR,)X 1315($0)X 1415(})X 1 f 338 6144(Free)N 501(Software)X 811(Foundation)X 1740(Last)X 1898(change:)X 2168(August)X 2419(24)X 2519(1989)X 4042(9)X 10 p %%Page: 10 10 10 s 0 xH 0 xS 1 f 338 384(GAWK)N 601(\()X 641(1)X 694(\))X 1852(USER)X 2076(COMMANDS)X 3699(GAWK)X 3962(\()X 4002(1)X 4055(\))X 3 f 9 s 338 768(SEE)N 504(ALSO)X 2 f 10 s 626 864(egrep)N 1 f 815(\(1\))X 2 f 626 998(The)N 775(AWK)X 973(Programming)X 1451(Language)X 1 f 1777(,)X 1826(Alfred)X 2065(V.)X 2172(Aho,)X 2359(Brian)X 2566(W.)X 2691(Kernighan,)X 3079(Peter)X 3273(J.)X 3354(Weinberger,)X 3784(Addison-)X 626 1094(Wesley,)N 907(1988.)X 1107(ISBN)X 1309(0-201-07981-X.)X 2 f 626 1228(The)N 766(GAWK)X 1013(Manual)X 1 f 1268(,)X 1308(published)X 1639(by)X 1739(the)X 1857(Free)X 2020(Software)X 2330(Foundation,)X 2734(1989.)X 3 f 9 s 338 1362(SYSTEM)N 664(V)X 746(RELEASE)X 1112(4)X 1178(COMPATIBILITY)X 1 f 10 s 626 1458(A)N 711(primary)X 992(goal)X 1157(for)X 2 f 1278(gawk)X 1 f 1474(is)X 1554(compatibility)X 2008(with)X 2178(the)X 2304(latest)X 2501(version)X 2765(of)X 9 s 2858(UNIX)X 2 f 10 s 3066(awk)X 1 f 3201(.)X 3269(To)X 3386(this)X 3529(end,)X 2 f 3693(gawk)X 1 f 3890(incor-)X 626 1554(porates)N 879(the)X 998(following)X 1330(user)X 1485(visible)X 1719(features)X 1995(which)X 2212(are)X 2332(not)X 2455(described)X 2784(in)X 2867(the)X 2986(AWK)X 3198(book,)X 3398(but)X 3520(are)X 3639(part)X 3784(of)X 2 f 3871(awk)X 1 f 4020(in)X 626 1650(System)N 881(V)X 959(Release)X 1229(4.)X 626 1784(The)N 3 f 9 f 782(-)X 784(-)X 3 f 828(v)X 1 f 900(option)X 1136(for)X 1262(assigning)X 1596(variables)X 1918(before)X 2156(program)X 2460(execution)X 2804(starts)X 3005(is)X 3090(new.)X 3296(The)X 3453(book)X 3645(indicates)X 3962(that)X 626 1880(command)N 965(line)X 1108(variable)X 1390(assignment)X 1773(happens)X 2059(when)X 2 f 2256(awk)X 1 f 2408(would)X 2631(otherwise)X 2966(open)X 3145(the)X 3266(argument)X 3592(as)X 3682(a)X 3741(\256le,)X 3886(which)X 626 1976(is)N 711(after)X 891(the)X 3 f 1021(BEGIN)X 1 f 1310(block)X 1520(is)X 1605(executed.)X 1963(However,)X 2310(in)X 2404(earlier)X 2642(implementations,)X 3227(when)X 3433(such)X 3613(an)X 3722(assignment)X 626 2072(appeared)N 940(before)X 1169(any)X 1308(\256le)X 1433(names,)X 1681(the)X 1801(assignment)X 2183(would)X 2405(happen)X 2 f 2659(before)X 1 f 2886(the)X 3 f 3006(BEGIN)X 1 f 3285(block)X 3485(was)X 3632(run.)X 3801(Applica-)X 626 2168(tions)N 806(came)X 1001(to)X 1088(depend)X 1345(on)X 1450(this)X 1590 0.3182(``feature.'')AX 1987(When)X 2 f 2204(awk)X 1 f 2359(was)X 2510(changed)X 2804(to)X 2892(match)X 3114(its)X 3215(documentation,)X 3737(this)X 3878(option)X 626 2264(was)N 771(added)X 983(to)X 1065(accomodate)X 1469(applications)X 1876(that)X 2016(depended)X 2344(upon)X 2524(the)X 2642(old)X 2764(behaviour.)X 626 2398(When)N 838(processing)X 1201(arguments,)X 2 f 1575(gawk)X 1 f 1765(uses)X 1924(the)X 2043(special)X 2287(option)X 2512(``)X 3 f 9 f 2566(-)X 2568(-)X 2618(-)X 2620(-)X 1 f 2664('')X 2739(to)X 2822(signal)X 3034(the)X 3153(end)X 3290(of)X 3378(arguments,)X 3753(and)X 3890(warns)X 626 2494(about,)N 844(but)X 966(otherwise)X 1298(ignores,)X 1574(unde\256ned)X 1910(options.)X 626 2628(The)N 771(AWK)X 983(book)X 1163(does)X 1331(not)X 1454(de\256ne)X 1671(the)X 1790(return)X 2003(value)X 2198(of)X 3 f 2286(srand\(\))X 1 f 2535(.)X 2596(The)X 2742(System)X 2998(V)X 3077(Release)X 3348(4)X 3409(version)X 3666(of)X 9 s 3752(UNIX)X 2 f 10 s 3953(awk)X 1 f 626 2724(has)N 756(it)X 823(return)X 1038(the)X 1159(seed)X 1325(it)X 1392(was)X 1540(using,)X 1756(to)X 1841(allow)X 2042(keeping)X 2319(track)X 2502(of)X 2591(random)X 2858(number)X 3125(sequences.)X 3493(Therefore)X 3 f 3833(srand\(\))X 1 f 626 2820(in)N 2 f 708(gawk)X 1 f 897(also)X 1046(returns)X 1289(its)X 1384(current)X 1632(seed.)X 626 2954(Other)N 838(new)X 1001(features)X 1285(are:)X 1455(The)X 1609(use)X 1745(of)X 1841(multiple)X 3 f 9 f 2136(-)X 2138(-)X 3 f 2182(f)X 1 f 2238(options;)X 2524(the)X 3 f 2651(ENVIRON)X 1 f 3059(array;)X 3277(the)X 3 f 3405(\\a)X 1 f 3467(,)X 3517(and)X 3 f 3663(\\v)X 1 f 3725(,)X 3 f 3775(\\x)X 1 f 3867(escape)X 626 3050(sequences;)N 994(the)X 3 f 1112(tolower)X 1 f 1391(and)X 3 f 1527(toupper)X 1 f 1818(built-in)X 2073(functions;)X 2413(and)X 2549(the)X 2667(ANSI)X 2874(C)X 2947(conversion)X 3319(speci\256cations)X 3775(in)X 3 f 3857(printf)X 1 f (.)S 3 f 9 s 338 3184(GNU)N 528(EXTENSIONS)X 2 f 10 s 626 3280(Gawk)N 1 f 848(has)X 990(some)X 1194(extensions)X 1567(to)X 1664(System)X 1935(V)X 2 f 2029(awk)X 1 f 2164(.)X 2240(They)X 2441(are)X 2576(described)X 2920(in)X 3018(this)X 3169(section.)X 3472(All)X 3610(the)X 3744(extensions)X 626 3376(described)N 965(here)X 1135(can)X 1278(be)X 1385(disabled)X 1683(by)X 1794(compiling)X 2 f 2149(gawk)X 1 f 2349(with)X 3 f 9 f 2522(-)X 2524(-)X 3 f 2568(DSTRICT)X 1 f 2923(,)X 2974(or)X 3072(by)X 3183(invoking)X 2 f 3498(gawk)X 1 f 3698(with)X 3871(the)X 3 f 9 f 4000(-)X 4002(-)X 3 f 4046(c)X 1 f 626 3472(option.)N 902(If)X 989(the)X 1120(underlying)X 1500(operating)X 1836(system)X 2091(supports)X 2395(the)X 3 f 2526(/dev/fd)X 1 f 2794(directory)X 3117(and)X 3266(corresponding)X 3758(\256les,)X 3944(then)X 2 f 626 3568(gawk)N 1 f 815(can)X 947(be)X 1043(compiled)X 1361(with)X 3 f 9 f 1523(-)X 1525(-)X 3 f 1569(DNO_DEV_FD)X 1 f 2123(to)X 2205(disable)X 2452(the)X 2570(special)X 2813(\256lename)X 3109(processing.)X 626 3702(The)N 771(following)X 1102(features)X 1377(of)X 2 f 1464(gawk)X 1 f 1653(are)X 1772(not)X 1894(available)X 2204(in)X 2286(System)X 2541(V)X 2 f 2619(awk)X 1 f 2754(.)X 10 f 914 3836(g)N 1 f 1202(The)X 1347(special)X 1590(\256le)X 1712(names)X 1937(available)X 2247(for)X 2361(I/O)X 2488(redirection)X 2856(are)X 2975(not)X 3097(recognized.)X 10 f 914 3970(g)N 1 f 1202(The)X 3 f 1347(IGNORECASE)X 1 f 1904(variable)X 2183(and)X 2319(its)X 2414(side-effects)X 2805(are)X 2924(not)X 3046(available.)X 10 f 914 4104(g)N 1 f 1202(No)X 1332(path)X 1502(search)X 1740(is)X 1825(performed)X 2192(for)X 2318(\256les)X 2483(named)X 2729(via)X 2859(the)X 3 f 9 f 2990(-)X 2992(-)X 3 f 3036(f)X 1 f 3096(option.)X 3373(Therefore)X 3724(the)X 3 f 3855(AWK-)X 1202 4200(PATH)N 1 f 1444(environment)X 1869(variable)X 2148(is)X 2221(not)X 2343(special.)X 10 f 914 4334(g)N 1 f 1202(The)X 3 f 9 f 1347(-)X 1349(-)X 3 f 1393(a)X 1 f (,)S 3 f 9 f 1473(-)X 1475(-)X 3 f 1519(e)X 1 f 1555(,)X 3 f 9 f 1595(-)X 1597(-)X 3 f 1641(c)X 1 f 1677(,)X 3 f 9 f 1717(-)X 1719(-)X 3 f 1763(C)X 1 f 1821(,)X 1861(and)X 3 f 9 f 1997(-)X 1999(-)X 3 f 2043(V)X 1 f 2121(command)X 2457(line)X 2597(options.)X 626 4468(The)N 771(AWK)X 983(book)X 1163(does)X 1330(not)X 1452(de\256ne)X 1668(the)X 1786(return)X 1998(value)X 2192(of)X 2279(the)X 3 f 2397(close)X 1 f 2582(function.)X 2 f 2909(Gawk)X 1 f 3108('s)X 3 f 3186(close)X 1 f 3371(returns)X 3614(the)X 3732(value)X 3926(from)X 2 f 626 4564(fclose)N 1 f 819(\(3\),)X 953(or)X 2 f 1040(pclose)X 1 f 1251(\(3\),)X 1385(when)X 1579(closing)X 1830(a)X 1886(\256le)X 2008(or)X 2095(pipe,)X 2273(respectively.)X 626 4698(When)N 2 f 839(gawk)X 1 f 1029(is)X 1103(invoked)X 1382(with)X 1545(the)X 3 f 9 f 1664(-)X 1666(-)X 3 f 1710(c)X 1 f 1767(option,)X 2012(if)X 2082(the)X 2 f 2201(fs)X 1 f 2275(argument)X 2599(to)X 2682(the)X 3 f 9 f 2801(-)X 2803(-)X 3 f 2847(F)X 1 f 2917(option)X 3143(is)X 3218(``t'',)X 3390(then)X 3 f 3550(FS)X 1 f 3665(will)X 3811(be)X 3909(set)X 4020(to)X 626 4794(the)N 744(tab)X 862(character.)X 1218(Since)X 1416(this)X 1551(is)X 1624(a)X 1680(rather)X 1888(ugly)X 2050(special)X 2293(case,)X 2472(it)X 2536(is)X 2609(not)X 2731(the)X 2849(default)X 3092(behavior.)X 3 f 9 s 338 4928(BUGS)N 1 f 10 s 626 5024(The)N 3 f 9 f 779(-)X 781(-)X 3 f 825(F)X 1 f 902(option)X 1134(is)X 1215(not)X 1345(necessary)X 1686(given)X 1892(the)X 2018(command)X 2362(line)X 2510(variable)X 2797(assignment)X 3186(feature;)X 3461(it)X 3534(remains)X 3817(only)X 3988(for)X 626 5120(backwards)N 990(compatibility.)X 626 5254(There)N 834(are)X 953(now)X 1111(too)X 1233(many)X 1431(options.)X 1726(Fortunately,)X 2135(most)X 2310(of)X 2397(them)X 2577(are)X 2696(rarely)X 2904(needed.)X 3 f 9 s 338 5388(AUTHORS)N 1 f 10 s 626 5484(The)N 777(original)X 1052(version)X 1314(of)X 9 s 1405(UNIX)X 2 f 10 s 1611(awk)X 1 f 1766(was)X 1918(designed)X 2230(and)X 2373(implemented)X 2818(by)X 2925(Alfred)X 3162(Aho,)X 3347(Peter)X 3539(Weinberger,)X 3966(and)X 626 5580(Brian)N 824(Kernighan)X 1183(of)X 1270(AT&T)X 1508(Bell)X 1661(Labs.)X 1857(Brian)X 2055(Kernighan)X 2414(continues)X 2741(to)X 2823(maintain)X 3123(and)X 3259(enhance)X 3543(it.)X 338 6144(Free)N 501(Software)X 811(Foundation)X 1740(Last)X 1898(change:)X 2168(August)X 2419(24)X 2519(1989)X 4002(10)X 11 p %%Page: 11 11 10 s 0 xH 0 xS 1 f 338 384(GAWK)N 601(\()X 641(1)X 694(\))X 1852(USER)X 2076(COMMANDS)X 3699(GAWK)X 3962(\()X 4002(1)X 4055(\))X 626 768(Paul)N 790(Rubin)X 1007(and)X 1145(Jay)X 1274(Fenlason,)X 1605(of)X 1694(the)X 1814(Free)X 1979(Software)X 2291(Foundation,)X 2697(wrote)X 2 f 2902(gawk)X 1 f 3077(,)X 3119(to)X 3203(be)X 3301(compatible)X 3680(with)X 3845(the)X 3966(ori-)X 626 864(ginal)N 809(version)X 1068(of)X 2 f 1158(awk)X 1 f 1310(distributed)X 1675(in)X 1760(Seventh)X 2041(Edition)X 9 s 2297(UNIX)X 10 s (.)S 2540(John)X 2714(Woods)X 2964(contributed)X 3352(a)X 3411(number)X 3679(of)X 3769(bug)X 3911(\256xes.)X 626 960(David)N 853(Trueman)X 1174(of)X 1272(Dalhousie)X 1628(University,)X 2017(with)X 2190(contributions)X 2643(from)X 2830(Arnold)X 3088(Robbins)X 3385(at)X 3474(Emory)X 3724(University,)X 626 1056(made)N 2 f 820(gawk)X 1 f 1009(compatible)X 1385(with)X 1547(the)X 1665(new)X 1819(version)X 2075(of)X 9 s 2160(UNIX)X 2 f 10 s 2360(awk)X 1 f 2495(.)X 3 f 9 s 338 1190(ACKNOWLEDGEMENTS)N 1 f 10 s 626 1286(Brian)N 824(Kernighan)X 1183(of)X 1270(Bell)X 1423(Labs)X 1599(provided)X 1904(valuable)X 2196(assistance)X 2537(during)X 2766(testing)X 2999(and)X 3135(debugging.)X 3533(We)X 3665(thank)X 3863(him.)X 338 6144(Free)N 501(Software)X 811(Foundation)X 1740(Last)X 1898(change:)X 2168(August)X 2419(24)X 2519(1989)X 4002(11)X 11 p %%Trailer xt xs