awk-man-b5.pdf

(349 KB) Pobierz
Wprowadzenie do AWK
Opisj¦zykaAWK
TomaszPrzechlewski
18listopada2000roku
2
Poszerzonaipoprawionawersjatekstu:B.Licho«skiiT.Przechlewski,AWK–
opisj¦zykazprzykładami[ 5 ].
Copyright(C)2000,T.Przechlewski
Zezwalasi¦narozpowszechnianieimodyfikowanietegodokumentupodwarunkiem
umieszczenianaka»dejkopiinotycopyrightowejorazniniejszejnotylicencyjnej.
Zmodyfikowanawersjadokumentumusiby¢rozpowszechniananawarunkach
niniejszejlicencji.
Spistre±ci
3
Spistre±ci
1.Wprowadzenie 5
1.1.Strukturaplikuwej±ciowego ..................... 7
1.2.Skryptywykonywalne ......................... 9
2.Wzorce 9
2.1. BEGIN / END ................................ 10
2.2.Wyra»enie ................................ 10
2.3.Wzorzecregularny ........................... 11
2.4.Wzorzeczło»ony ............................ 11
2.5.Wzorzeczprzecinkiem ......................... 12
3.Wyra»eniaregularne 12
3.1.Napisyjakowyra»eniaregularne ................... 14
4.Wyra»enia 15
4.1.Stałe ................................... 15
4.2.Zmienne ................................. 15
4.3.Zmiennewbudowane .......................... 16
4.4.Zmienneprzechowuj¡cezawarto±cipól ................ 17
4.5.Operatoryarytmetyczne ........................ 17
4.6.Operatorynapisowe .......................... 17
4.7.Operatoryporównywaniaioperatorylogiczne ............ 18
4.8.Operatorypasowaniadowyra»e«regularnych ............ 19
4.9.Przypisanie ............................... 19
4.10.Operatorwarunkowy ?: ........................ 19
5.Arytmetycznefunkcjewbudowane 20
6.Napisowefunkcjewbudowane 20
7.Funkcjedatyiczasu 24
8.Instrukcjesteruj¡ce 24
8.1.Instrukcjapusta ............................ 27
9.Tabliceasocjacyjne 27
9.1.Instrukcja delete ........................... 28
9.2.Tablicewielowymiarowe ........................ 28
10.Funkcje
29
4
Spistre±ci
11.Wej±cie 30
11.1.Pola ................................... 31
11.2.Rekordy ................................. 31
11.3.Instrukcja getline ........................... 34
11.4.Polaoustalonejdługo±ci ........................ 36
12.Instrukcjewyj±cia– print / printf 36
12.1.Instrukcja printf ........................... 36
12.2.Instrukcja print ............................ 38
12.3.Drukowaniedoplików ......................... 38
12.4.Drukowaniewpotoku ......................... 40
12.5.Funkcja close ............................. 40
12.6.Funkcja fflush ............................ 42
12.7.Funkcja system ............................ 42
13.Argumentywywołaniaprogramu 42
14.UruchamianieAWK 43
Bibliografia
44
Skorowidz
44
1.Wprowadzenie
5
1.Wprowadzenie
SystemUNIXwyposa»onyjestwwielenarz¦dziwspomagaj¡cychprac¦u»ytkow-
ników.AWKjestjednymzestandardowychnarz¦dzitegosystemu,cho¢imple-
mentacjeAWKznale¹¢mo»naniemalnaka»dejplatformiesystemowej.Nazwa
AWKpochodziodinicjałówjegotwórców:AlfredaV.Aho,PeteraJ.Weinbergera
iBrianaW.Kernighana.
Wjednymzdaniumo»napowiedzie¢,»eAWKsłu»ydotransformacjidanych
tekstowych.Istot¡działaniaAWKjestprzetwarzanieplikulubplikówwej±ciowych
wedługzadanegozbiorureguł,generuj¡cstrumie«danychwyj±ciowych,czyte»
plikówwyj±ciowych.
Ka»dyprogramj¦zykaAWKskładasi¦zdowolnejliczbypar 1 :
hwzorzeci { hakcjai }
hWzorzecijestwyra»eniemlogicznym,któremo»eby¢prawdziwe(wówczas
wykonywanajesthakcjai)lubfałszywe(hakcjainiejestwykonywana).Akcjajest
zawszezawartapomi¦dzypar¡nawiasów { i } .
AWKmo»eby¢wywołanynawielesposobów.Je»eliprogramjestkrótki,to
najpro±ciejjestumie±ci¢gopomi¦dzyznakamipojedynczegocudzysłowawliniipo-
lece«,wnast¦puj¡cysposób(wsystemachDOS/MSWindowszamiastcudzysłowa
pojedynczegonale»yu»y¢cudzysłowamaszynowego " ):
awk’ hprogrami hplik1ihplik2ih...i
Kiedyprogramjestdługiwygodniejszejestjegoumieszczeniewoddzielnym
pliku;wtymwypadkuuruchomienieprogramuwygl¡danast¦puj¡co(hprogrami
oznaczanazw¦plikuzawieraj¡cegoprogram):
awk-f hprogramihplik1ihplik2ih...i
Programwj¦zykuAWKmo»ezawiera¢wieleparhwzorzeci { hakcjai } .AWK
czytapokoleiwierszezhpliku1i,hpliku2iitd.dlawszystkichplików,których
nazwypodanowliniipolece«.Plikites¡modyfikowanewedługprogramuzpliku
hprogrami,tj.dlaka»degowierszazka»degozplikówwej±ciowychobliczanes¡
kolejnewzorce(wkolejno±ciichwyst¦powaniawprogramie)iwykonywaneakcje.
Przykład 1 (s. 6 )pokazujeprogramwykorzystuj¡cy2wzorce.Uwaga:Przykładowe
programymog¡zawiera¢konstrukcjewdanymmomenciejeszczenieomówione.
Je»elico±jestniezrozumiałe,czytajdalej,apolekturzecałegotekstuwró¢do
tegomiejsca–wszystkopowinnoby¢jasne.Uwaga2:Przedstawioneprzykłady
programóws¡gotowedouruchomieniawsystemachUnix/Linuxnatomiast
wsystemachDOS/MSWindowswymagaj¡czasamimodyfikacji,np.zamiany
znaków na " czyzast¡pieniaskryptówshellowychodpowiednimiplikami .bat .
Przedprzedstawieniembardziejszczegółowychinformacjioj¦zykuwymienimy
kilkapodstawowychregułskładn iAWK:
1 Wprzykładachprogramówfragmenty,któreoznaczaj¡pewnepoj¦cia,aniekonkretne
konstrukcjej¦zykaoznaczonokursyw¡wewn¡trznawiasówtrójk¡tnych,np.:hinstrukcjaioznacza
ka»d¡instrukcj¦AWK.
 
Zgłoś jeśli naruszono regulamin