vardas
gawk modelio nuskaitymo ir apdorojimo kalba
Anotacija
gawk POSIX arba GNU stiliaus parinktys -f programos failas -- failas …gawk POSIX arba GNU stiliaus parinktys -- programos tekstas failas … pgawk POSIX arba GNU stiliaus parinktys -f programos failas -- failas …pgawk POSIX arba GNU stiliaus parinktys -- programos tekstas failas … Gawkas yra GNU programos įgyvendinimo AWK programavimo kalba. Tai atitinka POSIX 1003.2 komandų kalbos ir komunalinių paslaugų standarto kalbos apibrėžimą. Ši versija, savo ruožtu, grindžiama aprašymu AWK programavimo kalba , kurį pateikė Aho, Kernighan ir Weinberger, su papildomomis funkcijomis, pateiktomis sistemos UNIX versijos 4 versijoje awk . Gawkas Taip pat pateikiama naujausi "Bell Laboratories" awk plėtinius ir tam tikrus "GNU" plėtinius. Pgawk yra profiliavimo versija gawk . Jis visais atžvilgiais yra identiškas gawk , išskyrus tai, kad programos veikia lėčiau ir automatiškai sukuria failo vykdymo profilį awkprof.out kai baigsite. Žr --profilis parinktis žemiau. Komandų eilutę sudaro galimybės gawk pati, AWK programos tekstas (jei nepateikiama per -f arba --failas parinktys) ir vertybes, kurios turi būti prieinamos ARGC ir ARGV iš anksto apibrėžti AWK kintamieji. Gawkas parinktys gali būti tradicinės POSIX vieno raidės parinktys arba ilgos galimybės GNU stiliui. POSIX parinktys prasideda viena `` - '', o ilgos parinktys prasideda nuo `- - '. Galimos ilgos galimybės tiek "GNU" savybėms, tiek POSIX įgaliotoms funkcijoms. Po POSIX standarto gawk -specifinės parinktys pateikiamos argumentais -W pasirinkimas. Daugkartinis -W gali būti pateiktos galimybės -W pasirinkimas turi atitinkamą ilgą variantą, kaip nurodyta toliau. Argumentai dėl ilgalaikių galimybių arba sujungiami su galimybe = pasirašyti, be tarpinių tarpų, arba jie gali būti pateikti kitame komandinės eilutės argumente. Ilgos galimybės gali būti sutrumpintos, kol santrumpa išlieka unikali. Gawkas priima šias parinktis, išvardytas abėcėlės tvarka. -F fs --field-separator fs Naudok fs įvesties lauko skirtuvui (reikšmė " FS iš anksto nustatytas kintamasis). -v var = val - priskirti var = val Priskirkite vertę val prie kintamojo var , prieš prasidedant programos vykdymui. Tokie kintamieji reikšmės yra prieinami BEGIN AWK programos blokas. -f programos failas --failas programos failas Perskaitykite AWK programos šaltinį iš failo programos failas , o ne iš pirmojo komandinės eilutės argumento. Daugkartinis -f (arba --failas) gali būti naudojamos. -mf NNN -Ponas NNN Nustatykite įvairias atminties ribas NNN . The f vėliava nustato maksimalų laukų skaičių ir r vėliava nustato maksimalų įrašo dydį. Šios dvi vėliavos ir -m pasirinkimas yra "Bell Laboratories" mokslinių tyrimų versijos UNIX awk . Jie ignoruojami gawk , nuo gawk neturi iš anksto nustatytų ribų. -W compat -W tradicinis --compat - tradicinis Vykdyti suderinamumas režimas Suderinamumo režimu gawk elgiasi identiškai su UNIX awk ; nė vienas iš konkrečių GNU plėtinių nėra pripažintas. Panaudojimas - tradicinis yra tinkamesnė už kitas šio varianto formas. Pamatyti GNU EXTENSIONS, žemiau, norint gauti daugiau informacijos. -Kopileftas -W autorių teisių --copyleft --autoristai Spausdinkite trumpą "GNU" autorių teisių informacinės žinutės versiją į standartinę išvestį ir sėkmingai išeikite. -W paketų kintamieji= failas --Dump kintamieji= failas Spausdinkite sugrupuotą pasaulinių kintamųjų sąrašą, jų tipus ir galutines reikšmes failas . Jei ne failas yra numatytas gawk naudoja failą pavadinimu awkvars.out dabartiniame kataloge. Visų pasaulio kintamųjų sąrašo sudarymas yra geras būdas ieškoti spausdinimo klaidų jūsų programose. Taip pat naudosite šią parinktį, jei turite didelę programą su daugybe funkcijų ir norite būti tikri, kad jūsų funkcijos netyčia nenaudos globalių kintamųjų, kuriuos turėtumėte būti vietiniais. (Tai yra ypač lengva klaida padaryti paprastais kintamaisiais pavadinimais, pvz i, j, ir taip toliau.) -W help -W naudojimo --Pagalba --usage Spausdinkite santykinai trumpą santrauką apie įmanomas standartinės išvesties parinktis. (Per GNU kodavimo standartai , šios galimybės sukelia greitą ir sėkmingą išėjimą.) -Virtas= mirtinas --lintas= mirtinas Pateikite įspėjimus apie konstrukcijas, kurie yra abejotini ar nepanaikinami kitoms AWK diegimo priemonėms. Su neprivalomu argumentu mirtinas, lint įspėjimai tampa mirtinomis klaidomis. Tai gali būti drastiškas, tačiau jo naudojimas neabejotinai paskatins švaresnes AWK programas. -Svarbus - senas Pateikite įspėjimus apie konstrukcijas, kurie nėra perkeliami į originalią Unix versiją awk . -W gen-po --gen-po Nuskaitykite ir analizuokite AWK programą ir generuokite GNU .po formato failą standartine išvestimi su įrašais, skirtais visoms programuojamoms programuojamoms eilutėms. Pati programa nėra vykdoma. Žr GNU gettext platinimas daugiau informacijos apie .po failai. -W ne dešimtainis duomenų - ne dešimtainiai duomenys Atpažinti aštuonkius ir šešioliktainius vertes įvesties duomenų. Naudokite šią parinktį labai atsargiai! - W posix --pasirinkti Tai įjungia suderinamumas režimu su tokiais papildomais apribojimais: * x pabėgėlių sekos nėra atpažįstamos. * Tik erdvė ir skirtukas veikia kaip laukų skirtukai, kai FS yra nustatytas į vieną erdvę, naujoji eilutė nėra. * Negalite tęsti eilučių po ? ir :. * Sinonimas funkcija už raktinį žodį funkcija nėra pripažintas. * Operatoriai ** ir **= negali būti naudojamas vietoj ^ ir ^=. * The fflush () funkcija nepasiekiama. -W profilis= prof_file --profilis= prof_file Siųsti profilių duomenis į prof_file . Numatytasis yra awkprof.out. Bėgti su gawk , profilis yra tik "gana atspausdinta" programos versija. Bėgti su pgawk , profilyje yra kiekvieno programos teiginio vykdymo skaičiavimas kairėje paraštėje ir funkcijų skambučių skaičius kiekvienai vartotojo apibrėžtai funkcijai. -W pakartotinis intervalas --re-intervalas Įgalinti naudoti intervalo išraiškos įprastinės išraiškos atitikimo (žr Reguliarios išraiškos, toliau). AWK kalba tradiciškai nėra intervale išraiškos. "POSIX" standartas juos pridėjo awk ir Egrep suderinti vienas su kitu. Tačiau jų naudojimas greičiausiai sulaužys senas AWK programas, taigi gawk tik juos pateikia, jei jų prašoma su šia galimybe arba kada --pasirinkti yra nurodyta. -W šaltinis programos tekstas - šaltinis programos tekstas Naudok programos tekstas kaip AWK programos šaltinio kodas. Ši parinktis leidžia lengvai susimaišyti bibliotekos funkcijas (naudojamas per -f ir --failas parinktys) su šaltinio kodu, įvestu į komandinę eilutę. Jis visų pirma skirtas vidutinio ir didelio AWK programoms, naudojamoms shell scenarijose. -W versija --versija Šios konkrečios kopijos informacijos versija spausdinimui gawk į standartinę produkciją. Tai naudinga daugiausia žinant, ar dabartinė kopija gawk jūsų sistemoje yra naujausia, nesvarbu, kokia "Free Software Foundation" platina. Tai taip pat naudinga pranešant apie klaidas. (Per GNU kodavimo standartai , šios galimybės sukelia greitą ir sėkmingą išėjimą.) -- Signalas pasirinkimo pabaigoje. Tai naudinga, kad AWK programa galėtų pateikti papildomus argumentus, pradedant nuo `- - '. Tai daugiausia yra suderinamumas su daugelio kitų POSIX programų naudojama argumentų parinkimo konvencija. Suderinamumo režimu visos kitos parinktys pažymėtos kaip netinkamos, bet ignoruojamos. Įprastoje operacijoje, kol pateiktas programos tekstas, nežinomos parinktys perduodamos programoje AWK ARGV masyvas apdorojimui. Tai ypač naudinga AWK programų paleidimui naudojant vykdomąjį vertintojo `` #! '' Mechanizmą. AWK PROGRAMOS VYKDYMAS AWK programa susideda iš modelio veiksmų ataskaitų ir pasirinktinių funkcijų apibrėžimų sekos. modelis { veiksmų pareiškimai }funkcija vardas ( parametrų sąrašas ) { pareiškimai }
Gawkas pirmasis skaitomas programos šaltinis iš programos failas (-os), jei nurodyta, nuo argumentų iki - šaltinis, arba iš pirmojo pasirinkimo argumento komandinėje eilutėje. The -f ir - šaltinis parinktys gali būti naudojamos keletą kartų komandinėje eilutėje. Gawkas skaito programos tekstą taip, tarsi visi programos failas s ir komandinės eilutės šaltinių tekstai buvo sujungti kartu. Tai naudinga kuriant AWK funkcijų bibliotekas, nereikalaujant jas įtraukti į kiekvieną naują AWK programą, kuri jas naudoja. Tai taip pat suteikia galimybę derinti bibliotekos funkcijas su komandinės eilutės programomis. Aplinkos kintamasis AWKPATH nurodo paieškos kelią, naudojamą ieškant šaltinių failų, kurie yra pavadinti -f pasirinkimas. Jei šis kintamasis neegzistuoja, numatytasis kelias yra".: / usr / local / share / awk". (Tikrasis katalogas gali skirtis priklausomai nuo to, kaip gawk buvo pastatytas ir įdiegtas.) Jei failo vardas suteiktas -f parinktė turi simbolį `` / '', nėra kelio paieškos. Gawkas vykdo AWK programas tokia tvarka. Pirma, visi kintamieji uždaviniai, nurodyti per -v pasirinkimas. Kitas, gawk kaupia programą į vidinę formą. Tada gawk vykdo kodą BEGIN blokas (-ai) (jei yra), tada persijungia skaityti kiekvieną failą, nurodytą ARGV masyvas. Jei komandų eilutėje nenurodytų failų nėra gawk skaitoma standartinė įvestis. Jei komandų eilutės filename yra formos var = val tai laikoma kintama paskirtimi. Kintamasis var bus priskirta vertė val . (Tai atsitinka po bet kurio BEGIN blokas (-ai) buvo paleistas.) Komandinės eilutės kintamojo priskyrimas yra labiausiai naudingas dinaminei reikšmių priskyrimui kintamiesiems, kuriuos AWK naudoja valdyti, kaip įvesta informacija yra sugadinta į laukus ir įrašus. Tai taip pat naudinga valdant būseną, jei reikia vienos duomenų bylos kelis kartus. Jei tam tikro elemento vertė ARGV Yra tuščias (''), gawk praleidžia jį. Kiekvienam įvesto įrašo įraše gawk patikrina, ar jis atitinka bet kurį modelis AWK programoje. Dėl kiekvieno modelio, kurį atitinka rekordas, susijęs veiksmas yra įvykdytas. Šablonai yra išbandomi taip, kaip jie rodomi programoje. Galiausiai, kai visi įvestis yra išnaudota, gawk vykdo kodą PABAIGA blokas (-ai) (jei yra). AWK kintamieji yra dinamiški; jie įvyksta, kai jie pirmą kartą naudojami. Jų reikšmės yra arba slankiojo kablelio skaičiai, arba stygos, arba abi, priklausomai nuo to, kaip jos naudojamos. AWK taip pat turi vienarūšius matricos; Vaizdai su daugybe matmenų gali būti imituojami. Keletas iš anksto apibrėžtų kintamųjų nustatomi kaip programos vykdymas; jie bus apibūdinti kaip reikalingi ir apibendrinti toliau. Paprastai įrašai yra atskirti naujomis eilutėmis. Galite valdyti, kaip atskiriami įrašai, priskiriant reikšmes integruotam kintamam RS. Jei RS yra bet koks vienas simbolis, tas simbolis atskiria įrašus. Priešingu atveju RS yra reguliaraus išraiška. Tekstas įvestyje, atitinkantis šią įprastą išraišką, atskiria įrašą. Tačiau suderinamumo režimu įrašų atskyrimui naudojamas tik pirmasis jo eilutės reikšmės simbolis. Jei RS yra nustatyta nulinė eilutė, tada įrašai yra atskirti tuščiomis eilutėmis. Kada RS yra nustatytas į nulinę eilutę, naujos eilutės simbolis visada veikia kaip laukų skirtukas, be to, bet kokia verte FS gali turėti. Kai kiekvienas įvesties įrašas yra skaitomas, gawk suskirsto įrašą į laukai , naudodamasis FS kintamasis kaip lauko atskyriklis. Jei FS yra vienas simbolis, laukai yra atskirti šiuo simboliu. Jei FS yra nulinė eilutė, tada kiekvienas atskiras simbolis tampa atskiru lauku. Priešingu atveju FS Tikimasi, kad bus visiškas reguliarios išraiškos būdas. Ypatingu atveju tai FS yra viena erdvė, laukai yra atskirti tarpų ir (arba) skirtukų ir (arba) naujų eilučių trasomis. (Bet pamatyk diskusijas --pasirinkti, toliau). PASTABA: Vertė IGNORECASE (žr. toliau) taip pat paveikia laukų padalijimą, kai FS yra reguliaraus išraiškos ir kaip atskiri įrašai, kai RS yra reguliaraus išraiška. Jei FIELDWIDTHS kintamasis yra nustatytas kaip atskirtas tarpas skaičių sąrašas, kiekvienas laukas turi būti nustatytas plotis ir gawk pasiskirsto įrašą naudodamas nurodytus plotis. Vertė FS yra ignoruojamas. Priskirti naują vertę į FS naikina naudojimą FIELDWIDTHS, ir atkuria numatytąjį elgesį. Kiekviename įvesties įrašo lauke gali būti nurodyta jo pozicija, $1, $2, ir taip toliau. $0 yra visa rekordas. Konstantos neturi būti nuorodos į laukus: n = 5atspausdinti $ n įvesties įraše atspausdina penktąjį lauką. Kintamasis NF yra nustatytas į bendrą įvesties įrašo laukų skaičių. Nuorodos į neegzistuojančius laukus (t. Y. Laukai po $ NF) gamina null string. Tačiau priskyrimas neegzistuojančiam laukui (pvz., $ (NF + 2) = 5) padidina vertę NF, sukuria bet kokius tarpinius laukus su nulio eilute kaip jų verte ir sukelia reikšmę $0 turi būti pakartotinai apskaičiuojamas, kai laukai yra atskirti reikšme OFS. Nuorodos į neigiamus numeruojamus laukus sukelia mirtiną klaidą. Sumažinimas NF sukelia laukų reikšmes, viršijančias naują vertę, ir vertės $0 turi būti pakartotinai apskaičiuojamas, kai laukai yra atskirti reikšme OFS. Priskiriant reikšmę esamam laukui, visas įrašas bus atstatytas, kai $0 yra nuoroda. Panašiai ir priskyrimas vertei $0 sukelia įrašų pertvarkymą, kuriant naujas laukų vertes. Gawkas 's integruotus kintamuosius yra: ARGC Komandų eilutės argumentų skaičius (neįtraukta į gawk , arba programos šaltinis). ARGIND Indeksas ARGV dabartinio apdoroto failo. ARGV Komandinės eilutės argumentų masyvas. Masyvas indeksuojamas nuo 0 iki ARGC - 1. Dinaminis turinio pakeitimas ARGV gali kontroliuoti duomenų naudojamus failus. BINMODE Ne POSIX sistemose nurodoma, kaip naudoti visų failų įvesties / išvesties `` binary '' režimą. Skaičiavimų reikšmės 1, 2 arba 3 nurodo, kad įvesties failai, išvesties failai arba visi failai atitinkamai turėtų naudoti dvejetainius I / O. String vertės "r", arba "w" nurodykite, kad įvesties failai arba išvesties failai atitinkamai turėtų naudoti dvejetainį I / O. String vertės "rw" arba "wr" nurodykite, kad visi failai turėtų naudoti dvejetainius I / O. Bet kokia kita eilutės reikšmė vertinama kaip "rw", bet sukuria įspėjimo pranešimą. CONVFMT Numerių konversijos formatas, "% .6g", pagal nutylėjimą. ENVIRON Masyvas, kuriame yra dabartinės aplinkos reikšmės. Masyvas indeksuojamas aplinkos kintamaisiais, kiekvienas elementas yra šio kintamojo vertė (pvz.,ENVIRON "HOME" gali būti / home / arnold) Pakeisti šį masyvą neturi įtakos aplinkai, kurią mato programos, kurios gawk nereda per nukreipimą arba sistema ()funkcija. ERRNO Jei atsiranda sistemos klaida, atlikite peradresavimą getline, skaitymo metu getline, arba per Uždaryti(), tada ERRNO bus eilutė, apibūdinanti klaidą. Vertė gali būti verčiama ne anglų kalbomis. FIELDWIDTHS Iš lauko pločio atskirtas laukų sąrašas. Kai nustatoma gawk analizuoja įvestį į fiksuoto pločio laukus, o ne naudoja reikšmę FS kintamasis kaip lauko atskyriklis. FAILO PAVADINIMAS Dabartinio įvesties failo pavadinimas.Jei komandų eilutėje nėra jokių failų, tai vertė FAILO PAVADINIMAS yra `` - ''. Tačiau FAILO PAVADINIMAS yra neapibrėžtas viduje BEGIN blokas (nebent nustatytas getline). FNR Įvesties įrašo numeris dabartiniame įvesties faile. FS Įvesties lauko skirtukas, numatytasis tarpas. Pamatyti Laukaiaukščiau. IGNORECASE Kontroliuoja visų reguliariosios išraiškos ir eilučių operacijų jautrumą. Jei IGNORECASE turi nulinę vertę, tada eilučių palyginimus ir modelio atitikimą taisyklėse, lauką, suskaidytą su FS, įrašas atskiriamas su RS, reguliaraus išraiškos, atitinkančios ~ir !~, ir gensub (), gsub (), indeksas(), rungtynės (), split (), ir sub () Integruotos funkcijos ignoruoja atvejį atliekant reguliaraus išraiškos operacijas. PASTABA: Array subscripting yra ne paveikta, taip pat nėra Asort () funkcija. Taigi, jei IGNORECASE nėra lygus nuliui / aB / atitinka visas eilutes "ab", "aB","Ab", ir "AB". Kaip ir visi AWK kintamieji, pradinė vertė IGNORECASE yra lygus nuliui, taigi visos reguliaraus išraiškos ir eilučių operacijos paprastai yra registruotos. Pagal Unix, ignoruojant atvejį, naudojamas visas ISO 8859-1 lotynų-1 simbolių rinkinys. LINT Suteikia dinamišką kontrolę --lintas pasirinkimas iš AWK programos. Kai tiesa gawk spausdina lintus įspėjimus. Kai klaidinga, tai nėra. Kai priskiriama eilutės reikšmė "mirtinas", juodieji įspėjimai tampa pavojingomis klaidomis, būtent taip --lint = mirtinas. Bet kokia kita tikra reikšmė tiesiog spausdina įspėjimus. NF Laukelių skaičius dabartiniame įvesties įraše. NR Bendras įvesties įrašų skaičius matytas iki šiol. OFMT Numerių išvesties formatas, "% .6g", pagal nutylėjimą. OFS Išvesties lauko skirtukas, numatytasis tarpas. ORS Išvesties įrašų atskyriklis pagal nutylėjimą yra naujoji eilutė. PROCINFO Šio masyvo elementai suteikia prieigą prie informacijos apie veikiančią AWK programą. Kai kuriose sistemose masyvas gali būti elementų, "grupė1" per "grupė n ' kai kuriems n , tai yra papildomų grupių, kurių procesas yra, skaičius. Naudoti in operatorius patikrinti šiuos elementus. Gali būti prieinami šie elementai: PROCINFO "egid" vertę getegid (2) sistemos skambutis. PROCINFO "euid" vertę geteuid (2) sistemos skambutis. PROCINFO "FS" "FS" jei laukas suskaidomas su FS yra galioja, arba "FIELDWIDTHS" jei laukas suskaidomas su FIELDWIDTHS yra galiojanti. PROCINFO "gid" vertę gėjų (2) sistemos skambutis. PROCINFO "pgrpid" dabartinio proceso proceso grupės ID. PROCINFO "pid" dabartinio proceso proceso ID. PROCINFO "ppid" dabartinio proceso tėvų proceso ID. PROCINFO "uid" vertę getuid (2) sistemos skambutis. RS Įvesties įrašų atskyriklis pagal nutylėjimą yra naujoji eilutė. RT Rekordas terminatorius. Gawkas rinkiniai RT įvesties tekstą, atitinkantį simbolį arba įprastinę išraišką, nurodytą RS. RSTART Pirmojo simbolio indeksas atitiko rungtynės (); 0 jei rungtynių nėra. (Tai reiškia, kad simbolių rodikliai prasideda viename.) RLENGTH Stygos ilgis sutampa su rungtynės (); -1 jei rungtynių nėra. PAPILDYMAS Simbolis, naudojamas atskiriems elementams atskirti masyvo elementuose pagal numatytuosius nustatymus ' 034'. TEXTDOMAIN AWK programos teksto domenas; naudojamas rasti lokalizuotus vertimus į programos eilutes. Masyvai yra išreikšti tarp laužtinių skliaustų ( ir ) Jei išraiška yra išraiškos sąrašas ( expr , expr …) masyvo indeksas yra eilutė, susidedanti iš kiekvienos išraiškos (eilutės) vertės sujungimo PAPILDYMAS kintamasis. Ši priemonė naudojama imituojant daugybę matmenų masyvus. Pavyzdžiui: i = "A"; j = "B"; k = "C"x i, j, k = "sveika, pasaulis n" priskiria eilutę "Sveiki, pasaulis n" į masyvo elementą x kuris yra indeksuojamas eilute"A 034B 034C". Visi AWK masyvai yra asociaciniai, t.y., indeksuojami pagal eilutės reikšmes. Specialus operatorius in gali būti naudojamas jei arba o teiginys, ar masyvas turi indeksą, susidedantį iš konkrečios vertės. jei (val in array) spausdinimo masyvas val Jei masyvas turi kelis indeksus, naudokite (i, j) matricoje. The in konstrukcija taip pat gali būti naudojama a dėl linija, kad būtų kartojama visais masyvo elementais. Elementas gali būti išbrauktas iš masyvo naudojant Ištrinti pareiškimas. The Ištrinti teiginys taip pat gali būti naudojamas ištrinti visą masyvo turinį, tik nurodant masyvo pavadinimą be indikatoriaus. Kintamieji ir laukai gali būti (plūduriuojantys taškai) skaičiai arba eilutės arba abi. Kaip interpretuojama kintamojo vertė priklauso nuo jos konteksto. Jei naudojamas skaitinėje išraiškoje, jis bus laikomas skaičiumi, jei jis bus naudojamas kaip eilutė, jis bus traktuojamas kaip eilutė. Norėdami priversti kintamąjį laikyti skaičiumi, pridėti 0 prie jo; priversti jį laikyti eilute, susieti ją su nuline eilute. Kai eilutė turi būti paversta skaičiumi, konversija atliekama naudojant strtod (3). Skaičius konvertuojamas į eilutę naudodamas vertę CONVFMT kaip formato eilutė Sprintf (3), su kintamojo skaitine verte kaip argumentu. Tačiau, nors visi AWK skaičiai yra plūduriuojantys taškai, yra integralios vertės visada konvertuojami kaip sveiki skaičiai. Taigi, duota CONVFMT = "% 2.2f" a = 12 b = "" kintamasis b turi eilutės reikšmę '12' ir ne '12.00'. Gawkas atlieka palyginimus taip: jei du kintamieji yra skaitiniai, juos palygina skaitmenimis. Jei viena vertė yra skaitinė, o kita turi eilutės reikšmę, kuri yra "skaitinė eilutė", tada palyginimai taip pat atliekami skaičiais. Priešingu atveju skaitinė vertė konvertuojama į eilutę ir atliekamas palyginimas. Žinoma, dvi eilutės palyginamos kaip eilutės. Atkreipkite dėmesį, kad POSIX standartas visur taiko "skaitinių eilučių" koncepciją, net ir eilutės konstantoms. Tačiau tai akivaizdžiai neteisinga, ir gawk to nedaro. (Laimei, tai yra nustatyta kitoje standarto versijoje.) Atkreipkite dėmesį į tai, kad eilutės konstantos, tokios kaip '57', yra ne skaitinės eilutės, tai yra eilutės konstantos. "Skaitinių eilučių" idėja taikoma tik laukams, getline įvestis FAILO PAVADINIMAS, ARGV elementai ENVIRON elementai ir masyvo elementai, kuriuos sukūrė split () tai skaitmeninės eilutės. Pagrindinė idėja yra ta, kad vartotojo įvestis , ir tokiu būdu turėtų būti elgiamasi tik su naudotojo įvestu, kuris atrodo skaičiais. Neinitializuoti kintamieji turi skaitinę reikšmę 0 ir eilutės reikšmę "" (nulinė arba tuščia eilutė). Nuo 3.1 versijos gawk "AWK" programos šaltinio kode galite naudoti "C" stiliaus aštuonkius ir šešioliktainius konstantus. Pavyzdžiui, aštuoninė vertė 011 yra lygus dešimtainiams 9, ir šešioliktainė reikšmė 0x11 yra lygus dešimtainiam skaičiavimui. AWK eilutės konstantos yra simbolių seka tarp dvigubų kabučių (') Per eilutes, tam tikras pabėgėlių sekos yra pripažįstami, kaip ir C. Tai yra: \ Žodinis grįžtamasis brūkšnys. a "Simbolis"; paprastai ASCII BEL simbolis. b backspace. f forma-feed. n nauja linija. r vežimėlio grąža. t horizontalus skirtukas. v vertikalus skirtukas. x šešioliktainiai skaitmenys Simbolis, kurį rodo šešioliktainių skaitmenų eilutė po x. Kaip ir ANSIC, visi šie šešioliktainiai skaitmenys laikomi pabėgėlių sekos dalimi. (Ši funkcija turėtų mums ką nors apie kalbos dizainą pasakyti komitetui.) Pvz., " x1B" yra ASCIIESC (pabėgimo) pobūdis. ddd Simbolis, kurį sudaro 1-, 2-, arba 3-ženklų aštuonkų skaičių seka. Pavyzdžiui, ' 033' yra ASCII ESC (pabėgio) simbolis. c Žodinis simbolis c . Escape sekos taip pat gali būti naudojamos pastoviose reguliariosiose išraiškose (pvz.,/ t f n r v / atitiktų tarpo simbolius). Suderinamumo režimu simboliai, kuriuos vaizduoja aštuonios ir šešioliktainės pabėgėlių sekos, apdorojamos pažodžiui, kai naudojamos reguliariosios išraiškos konstantose. Taigi, / a 52b / yra lygiavertis/ a * b /. AWK yra orientuota į liniją kalba. Pirmasis modelis, o tada veiksmas. Veiksmų ataskaitos pridedamos { ir }. Galima trūkti modelio, arba veiksmas gali būti trūkstamas, bet, žinoma, ne abu. Jei modelio trūksta, veiksmas vykdomas kiekvienam įvesties įrašui. Trūkstamas veiksmas yra lygiavertis {print} kuris išspausdina visą įrašą. Komentarai prasideda simboliu `` # '' ir tęsiasi iki eilutės pabaigos. Blank linijos gali būti naudojamos atskirti pareiškimus. Paprastai ataskaita baigiasi nauju tekstu, tačiau tai nėra tas atvejis, kai eilutės baigiasi "`, '', {, ?, :, &&, arba ||. Linijos, kurios baigiasi daryk arba Kitas taip pat savo pareiškimus automatiškai tęsiama toliau nurodyta eilute. Kitais atvejais eilutė gali būti tęsiama, baigiant ją ", tokiu atveju naujoji eilutė bus ignoruojama. Keli teiginiai gali būti dedami į vieną eilutę, atskiriant juos su ``; ''. Tai taikytina tiek veiksmams skirtos veiksenos poros (įprastinės bylos) veiksmams, tiek pačių modelio veiksmams. AWK modeliai gali būti viena iš šių: BEGIN PABAIGA / Įprasta išraiška / santykinė išraiška modelis && modelis modelis || modelis modelis ? modelis : modelis ( modelis ) ! modelis modelis1 , modelis2 BEGIN ir PABAIGA yra du specialūs modeliai, kurie nėra išbandyti prieš įvestį. Veiksmai visų dalių BEGIN modeliai sujungti, tarsi visi teiginiai būtų parašyti viename BEGIN blokuoti Jie yra įvykdyti prieš pradedant bet kokį įvesties skaitymą. Panašiai ir visi PABAIGA blokai sujungti ir vykdomi, kai visi įvestis yra išnaudota (arba kai išeiti pareiškimas vykdomas). BEGIN ir PABAIGA modeliai negali būti derinami su kitais modelio išraiškos modeliais. BEGIN ir PABAIGA modeliuose negali būti trūkstamų veiksmų dalių. Dėl / Įprasta išraiška / modeliai, atitinkama ataskaita vykdoma kiekvienam įvesties įrašui, kuris atitinka įprastą išraišką. Reguliariosios išraiškos yra tokios pat kaip ir Egrep (1) ir yra apibendrinti toliau. A santykinė išraiška gali naudoti bet kurį iš veiksmų, aprašytų toliau skyriuje apie veiksmus. Paprastai jie tikrina, ar tam tikri laukai atitinka tam tikras reguliaraus išraišką. The &&, ||, ir ! operatoriai yra loginiai AND, loginiai OR ir logiškai NOT atitinkami, kaip ir C. Jie atlieka trumpojo jungimo įvertinimą, taip pat kaip ir C, ir yra naudojami daugiau primityvių šablonų išraiškų sujungimui. Kaip ir daugumoje kalbų, skliausteliuose gali būti naudojamasi vertinimo tvarkai pakeisti. The ?: operatorius yra tas pats operatorius C. Jei pirmasis modelis yra teisingas, bandymui naudojamas modelis yra antras modelis, kitaip jis yra trečias. Tik vienas iš antrojo ir trečiojo modelių yra vertinamas. The modelis1 , modelis2 išraiškos forma yra vadinama diapazono modelis . Jis atitinka visus įvesties įrašus, pradedant nuo įrašo, kuris atitinka modelis1 , ir tęsiasi iki įrašo, kuris atitinka modelis2 , imtinai. Jis nesuderinamas su jokiu kitu modelio raiška. Reguliariosios išraiškos yra išplėstos rūšies, kuri randama Egrep . Jie susideda iš šių simbolių: c atitinka ne metacharacter c . c atitinka burtinius simbolius c . . atitinka bet kurį simbolį įskaitant nauja linija. ^ atitinka eilutės pradžią. $ atitinka eilutės pabaigą. abc … simbolių sąrašas atitinka bet kurį simbolį abc … . ^ abc … neigiamas simbolių sąrašas, atitinka bet kurį simbolį, išskyrus abc … . r1 | r2 keitimas: atitinka ir r1 arba r2 . r1r2 sujungimas: rungtynės r1 , ir tada r2 . r + atitinka vieną ar daugiau r 's r * atitinka nulį ar daugiau r 's r ? atitinka nulį arba vieną r 's ( r ) grupavimas: rungtynės r . r { n } r { n ,} r { n , m } Vienas ar du skaitmenys viduje yra apibūdinimai intervalo išraiška . Jei liemenyje yra vienas skaitmuo, tai yra ankstesnė reguliarioji išraiška r kartojama n laikai. Jei yra kableliais atskirti du skaitmenys, r kartojama n į m laikai. Jei yra vienas numeris po kableliu, tuomet r pakartojamas bent jau n laikai. Tarpinės išraiškos yra prieinamos tik tuo atveju --pasirinkti arba --re-intervalas yra nurodytas komandinėje eilutėje. y atitinka tuščią eilutę žodžio pradžioje arba pabaigoje. B atitinka tuščią eilutę per žodį. < atitinka tuščią eilutę žodžio pradžioje. > atitinka žodžio pabaigoje tuščią eilutę. w atitinka bet kurį žodžio sudedamąjį ženklą (raidė, skaitmuo arba pabraukimas). W atitinka bet kurį simbolį, kuris nėra žodinis sudedamoji dalis. ` atitinka tuščią eilutę buferio pradžioje (eilutėje). ' atitinka buferio pabaigoje esančią tuščią eilutę. Styginių konstantose galiojančios evoliucijos sekos (žr. Toliau) taip pat galioja reguliariose išraiškose. Simbolių klasės yra nauja funkcija, įdiegta POSIX standarte. Charakterio klasė yra speciali simbolis, apibūdinantis konkrečių atributų simbolių sąrašus, tačiau tais atvejais, kai faktiniai simboliai gali skirtis priklausomai nuo šalies ir / arba nuo simbolių rinkinio iki simbolių rinkinio. Pvz., JAV ir Prancūzijoje sąvoka "abėcėlės raidė" skiriasi. Simbolių klasė galioja tik įprastinėje išraiškoje viduje simbolių sąrašo skliausteliuose. Simbolių klasės susideda iš :, raktinį žodį, žymintį klasę, ir :. Charakteristikos klasės, apibrėžtos POSIX standarte: : alnum: Raidiniai ir skaitmeniniai simboliai. : alfa: Abėcėlės raidės. :tuščias: Erdvės ar skirtuko simboliai. : cntrl: Valdymo ženklai. :skaitmenų: Skaitiniai simboliai. : grafika: Rašmenys, kurie yra spausdinami ir matomi. (Tarpas yra spausdinamas, bet nematomas, o an a yra abu.) : mažesnis: Apatiniai abėcėlės raidės. : print: Printable simboliai (simboliai, kurie nėra kontroliniai ženklai). : punct: Žymiai ženklai (simboliai, kurie nėra raidė, skaitmenys, valdymo simboliai ar simboliai). : erdvė: Erdvės simboliai (pvz., Erdvė, skirtukas ir formos formos, norėdami įvardyti keletą). : viršutinis: Viršutinės raidės abėcėlės tvarka. : xdigit: Simboliai, kurie yra šešioliktainiai skaitmenys. Pavyzdžiui, prieš pradedant POSIX standartą, kad atitiktų raidinius ir skaitmeninius simbolius, jums reikėjo parašyti / A-Za-z0-9 /. Jei jūsų simbolių rinkinyje buvo kitokių abėcėlinių simbolių, tai jų neatitiktų, o jei jūsų simbolių rinkinys susimaišytų kitaip nei ASCII, tai net gali netgi atitikti ASCII raidinius ir skaitmeninius simbolius. Naudodami POSIX ženklų klases galite rašyti/ : alnum: /, ir tai atitinka simbolių rinkinio abėcėlinius ir skaitmeninius simbolius. Dvi papildomos specialios sekos gali pasirodyti simbolių sąrašuose. Tai taikoma ne ASCII simbolių rinkiniams, kurie gali turėti vieną simbolį (vadinamą lyginant elementus ), kuriuose yra daugiau nei vienas simbolis, taip pat kelis simbolius, kurie yra lygiaverčiai lyginant ar rūšiavimo tikslais. (Pvz., Prancūzų kalba, paprastas "e" ir rimtas akcentuotas e "yra lygiaverčiai). Simbolių susiejimas Suderinamas simbolis yra kelių ženklų lyginimo elementas, įtrauktas į . ir .. Pavyzdžiui, jei Ch yra lyginimo elementas, tada .ch. yra reguliaraus išraiškos, atitinkančios šį lyginamąjį elementą, tuo tarpu ch yra reguliaraus reiškinio, kuris atitinka ir c arba h. Lygiavertiškumo klases Ekvivalentiškumo klasė yra vietovardžiai, atitinkantys simbolių, kurie yra lygiaverčiai, sąrašą. Pavadinimas pridėtas = ir =. Pavyzdžiui, pavadinimas e gali būti naudojamas atstovauti visoms "e", "e", "" ir "e". "Šiuo atveju = e = yra reguliaraus išraiškos, atitinkančios bet kurį iš e, e ', arba e `. Šios savybės yra labai vertingos ne angliškai kalbančiose vietovėse. Tai veikia biblioteka gawk naudoja reguliariosios išraiškos atitikimą, šiuo metu tik atpažįsta POSIX ženklų klases; jie neatpažįsta lyginamųjų simbolių ar lygiavertiškumo klasių. The y, B, <, >, w, W, `, ir ' operatoriai yra specifiniai gawk ; tai pratęsimai, pagrįsti "GNU" reguliaraus išraiškos bibliotekų įrenginiais. Įvairios komandų eilutės parinktys kontroliuoja, kaip gawk interpretuoja simbolius į įprastines išraiškas. Jokių galimybių Numatytam atvejui gawk pateikite visas POSIX reguliariosios išraiškos priemones ir aukščiau aprašytus GNU reguliarios išraiškos operatorius. Tačiau intervalu išraiškos nepalaikomos. --pasirinkti Palaikomos tik POSIX reguliariosios išraiškos, o GNU operatoriai nėra specialūs. (Pvz., w atitinka tikra prasme w) Intervale išraiškos leidžiamos. - tradicinis Tradicinis Unix awk reguliariosios išraiškos yra suderintos. GNU operatoriai nėra specialūs, tarpiniai išraiškos nėra, ir nėra POSIX simbolių klasių (: alnum: ir taip toliau). Veislės, aprašytos aštuonių ir šešioliktainių pabėgėlių seka, yra traktuojamos pažodžiui, net jei jie yra įprastinės išraiškos metaformis. --re-intervalas Leisti intervalų išraiškas įprastinėse išraiškose, net jei - tradicinis buvo suteikta. Veiksmų ataskaitos pridedamos prie petnešų, { ir }. Veiksmų ataskaitos susideda iš įprastų užduočių, sąlyginių ir kilpų pareiškimų, rastų daugelyje kalbų. Operatoriai, valdymo ataskaitos ir įvesties / išvesties ataskaitos prieinamos rašant po C taško. AWK operatoriai, siekiant sumažinti pirmenybę, yra (…) Grupavimas $ Lauko nuoroda. ++ -- Padidėjimas ir sumažėjimas, tiek prefiksas, tiek postfix. ^ Eksponencija (** taip pat gali būti naudojamas, ir **= užduoties operatoriui). + - ! Unary plus, unary minusas ir loginis negacija. * / % Daugyba, padalijimas ir modulis. + - Papildymas ir atimtis. erdvė Styginių sujungimas. < > <= >= != == Reguliarūs santykiniai operatoriai. ~ !~ Reguliariosios išraiškos atitikimas, neigiamas atitikimas. PASTABA: Nenaudokite pastovios reguliaraus išraiškos (/ foo /) kairėje pusėje ~ arba !~. Naudokite tik vieną dešinėje pusėje. Išsireiškimas / foo / ~ exp turi tą pačią prasmę kaip ir (($ 0 ~ / foo /) ~ exp ). Tai paprastai ne kas buvo numatyta. in Array narystė. && Logiška ir. || Logiškas OR. ?: C sąlyginė išraiška. Tai turi formą expr1 ? expr2 : expr3 . Jei expr1 yra teisinga, išraiškos reikšmė yra expr2 , kitaip tai yra expr3 . Tik viena iš expr2 ir expr3 yra įvertintas. = += -= *= /= %= ^= Paskyrimas. Abi absoliučios paskyrimas ( var = vertę ) ir operatoriaus priskyrimas (kitos formos). Kontrolės ataskaitos yra tokios: jei ( sąlyga ) pareiškimas Kitas pareiškimas o ( sąlyga ) pareiškimas daryk pareiškimas o ( sąlyga ) dėl ( expr1 ; expr2 ; expr3 ) pareiškimas dėl ( var in masyvas ) pareiškimas pertrauka Tęsti Ištrinti masyvas indeksas Ištrinti masyvas išeiti išraiška { pareiškimai } Įvesties / išvesties ataskaitos yra tokios: Uždaryti( failas , kaip ) Uždarykite failą, vamzdį arba bendrai apdorokite. Neprivaloma kaip turėtų būti naudojamas tik tuo atveju, kai uždaromas vienas iš dviejų krypčių vamzdžio galas bendro proceso metu. Tai taip pat turi būti eilutės reikšmė "į" arba "iš". getline Rinkinys $0 iš kito įvesties įrašo; nustatyti NF, NR, FNR. getline < failas Rinkinys $0 iš kito įrašo failas ; nustatyti NF. getline var Rinkinys var iš kito įvesties įrašo; nustatyti NR, FNR. getline var < failas Rinkinys var iš kito įrašo failas . komanda | getline var Paleisti komanda vamzdynų išvesties arba į $0 arba var , kaip aukščiau. komanda | & getline var Paleisti komanda kaip bendro proceso vamzdyną išvesties į $0 arba var , kaip aukščiau. Bendrai procesai yra a gawk pratęsimas Kitas Sustabdyti dabartinio įvesties įrašo apdorojimą. Kitas įvesties įrašas yra skaitomas ir apdorojimas prasideda pirmąja AWK programos schema. Jei įvesties duomenų pabaiga pasiekiama, PABAIGA blokas (-ai), jei toks yra, yra įvykdytas. nextfile Sustabdyti dabartinio įvesties failo apdorojimą. Kitas įrašo įrašas skaitomas iš kito įvesties failo. FAILO PAVADINIMAS ir ARGIND yra atnaujinamos FNR yra atstatomas į 1, o apdorojimas prasideda per pirmąjį AWK programos modelį. Jei įvesties duomenų pabaiga pasiekiama, PABAIGA blokas (-ai), jei toks yra, yra įvykdytas. spausdinti Spausdina dabartinį įrašą. Išvesties įrašas yra nutraukiamas su ORS kintamasis. spausdinti expr sąrašas Spausdina išraiškas. Kiekviena išraiška yra atskirta reikšme OFS kintamasis. Išvesties įrašas yra nutraukiamas su ORS kintamasis. spausdinti expr sąrašas > failas Spausdina išraiškas failas . Kiekviena išraiška yra atskirta reikšme OFS kintamasis. Išvesties įrašas yra nutraukiamas su ORS kintamasis. printf fmt, expr-list Formatavimas ir spausdinimas. printf fmt, expr-list > failas Formatuokite ir atspausdinkite failas . sistema ( cmd-line ) Vykdykite komandą cmd-line , ir grąžinti išėjimo statusą. (Tai gali būti ne POSIX sistemose.) fflush ( failas ) Supilkite bet kokius buferius, susijusius su atvirojo išvesties failo ar vamzdžio failas . Jei failas trūksta, tada standartinė išeiga yra prapūsti. Jei failas yra nulinė eilutė, tada visi atviros išvesties failai ir vamzdeliai išvalomi. Papildomi leidimo peradresavimai leidžiami spausdinti ir printf. spausdinti … >> failas prideda išvestį į failas . spausdinti … | komanda rašo ant vamzdžio. Spausdinti … | & komanda siunčia duomenis bendram procesui. The getline komanda grąžina 0 failo pabaigoje ir -1 dėl klaidos. Klaidai ERRNO yra eilutė, apibūdinanti problemą. PASTABA: Jei naudojate vamzdį arba bendrai apdorojote getlinearba iš spausdinti arba printf per kilpa, tu privalo naudoti Uždaryti() sukurti naujus komandos pavyzdžius. AWK ne automatiškai uždaro vamzdžius ar bendrai apdoroja, kai grįš EOF. AWK versijos printf pareiškimas ir sprintf () funkcija (žr. toliau) priima šiuos konversijos specifikacijos formatus: % c ASCII simbolis. Jei argumentas buvo naudojamas % c yra skaitmeninis, jis laikomas simboliu ir spausdinamas. Priešingu atveju laikoma, kad argumentas yra eilutė, ir spausdinama tik vienintelė pirmoji tos eilutės simbolė. % d, % i Dešimtainis numeris (sveikasis skaičius). % e,% E Formos plūduriuojantis numeris - d.dddddde + - dd. The % E formatas E vietoj e. % f Formos plūduriuojantis numeris - ddd.dddddd. % g,% G Naudok % e arba % f konversija, priklausomai nuo to, kas yra trumpesnė, su nereikšmingais nuliais. The% G formatas % E vietoj % e. % o Nepakeista aštuonkis numeris (taip pat sveikasis skaičius). % u Nepaskelbtas dešimtainis skaičius (dar kartą, sveikasis skaičius). % s Simbolių eilutė. % x,% X Nepasirašytas šešioliktainis numeris (sveikasis skaičius). The % X formatas ABCDEF vietojAbcdef. %% Vienas % charakteris; nė vienas argumentas nėra konvertuojamas. Pasirinktinai, papildomi parametrai gali būti tarp % ir kontrolės raidė: suskaičiuoti $ Naudoti suskaičiuoti 's argumentas šiuo formatavimo momentu. Tai vadinama a Pozicijos specifikatorius ir yra pirmiausia skirtas naudoti verčiamose formatų eilučių versijose, o ne originaliame AWK programos tekste. Tai yra gawk pratęsimas - Žodis turėtų būti išteisintas savo lauke. erdvė Jei naudojate skaitines konversijas, priskirkite teigiamas vertes su tarpu ir neigiamas vertes su minuso ženklu. + Pliuso ženklas, naudojamas prieš pločio modifikatorių (žr. Toliau), sako, kad visada pateikia ženklą skaitinėms konversijoms, net jei formatavimo duomenys yra teigiami. The + pakeičia vietos modifikatorių. # Naudokite "` alternatyvią formą '' tam tikrų kontrolinių raidžių. Dėl % o, teikia pirmaujančią nulį. Dėl % x, ir % X, teikia pirmaujančią 0x arba 0X už nulinį rezultatą. Dėl % e, % E, ir % f, rezultatas visada yra dešimtainis taškas. Dėl % g, ir % Gnuliniai taškai nenuimami iš rezultato. 0 Pirmaujanti 0 (nulis) veikia kaip vėliava, o tai reiškia, kad išvestis turėtų būti užpildyta nuliais, o ne tarpu. Tai taikoma net skaitmeninio išvesties formatams. Ši žyma tik veikia, kai lauko plotis yra platesnis už spausdintiną vertę. plotis Laukas turėtų būti padengtas iki šio pločio. Lauke paprastai yra tarpai. Jei 0vėliava buvo naudojama, ji užpildyta nuliais. . tiksliai Skaičius, nurodantis spausdinimo tikslumą. Už % e, % E, ir % fformatais, tai nurodo skaitmenų, kuriuos norite išspausdinti dešinėje dešimtainėje pusėje, skaičių. Už % g, ir % G formatuose nurodomas didžiausias reikšmingų skaitmenų skaičius. Už % d, % o, % i, % u, % x, ir % X formatuose, jis nurodo mažiausią spausdinamų skaitmenų skaičių. Dėl % s, jis nurodo maksimalų rašmenų skaičių iš eilutės, kuri turėtų būti atspausdinta. Dinamika plotis ir tiksliai ANSI C pajėgumai printf () tvarkos palaikymas. A * vietoj plotis arba tiksliai specifikacijos verčia juos paimti iš argumentų sąrašo į printf arba sprintf (). Jei norite naudoti pozicijos specifikaciją su dinaminiu pločiu ar tikslumu, pateikite suskaičiuoti $ po to, kai * formato eilutėje. Pavyzdžiui, "% 3 $ * 2 $. * 1 $ s". Atliekant I / O peradresavimą iš bet kurio spausdinti arba printf į failą arba per getline iš failo gawk atpažįsta tam tikras specialias failų pavadinimus viduje. Šie failų pavadinimai leidžia atidaryti failų aprašus, paveldėtus iš gawk 's tėvų procesas (paprastai apvalkalas). Šie failų vardai taip pat gali būti naudojami komandinėje eilutėje, norėdami įvardinti duomenų failus. Failų pavadinimai yra: / dev / stdin Standartinis įvestis. / dev / stdout Standartinė išvestis. / dev / stderr Standartinė klaidų išvestis. / dev / fd / n Failas, susietas su atviro failo deskriptoriumi n . Tai ypač naudinga klaidos pranešimams. Pavyzdžiui: atspausdinkite "Tu pūku!" > "/ dev / stderr" o kitu atveju turite naudoti atspausdinkite "Tu pūku!" | "katė 1" ir "2" Šie specialieji failų pavadinimai gali būti naudojami su |& bendrai apdoroti operatorių TCP / IP tinklo jungtims kurti. / inet / tcp / lportas / Rhost / rportas TCP / IP prisijungimo prie vietinio prievado failas lportas prie nuotolinio kompiuterio Rhost nuotoliniame prievade rportas . Naudokitės uosto 0 turėti sistemą pasirinkti uostą. / inet / udp / lportas / Rhost / rportas Panašus, bet naudokite UDP / IP vietoj TCP / IP. / inet / raw / lportas / Rhost / rportas Rezervuota naudoti ateityje. Kiti specialieji failų pavadinimai suteikia prieigą prie informacijos apie veikimą gawk procesas. Šie failų pavadinimai yra pasenę. Naudoti PROCINFO masyvas, norėdami gauti jų pateiktą informaciją. Failų pavadinimai yra: / dev / pid Šio failo skaitymas grąžina dabartinio proceso proceso ID, dešimtainis, nutraukiamas naudojant naują eilutę. / dev / ppid Perskaitydamas šį failą grąžina dabartinio proceso tėvų proceso ID, dešimtainis, nutraukiamas naudojant naują eilutę. / dev / pgrpid Šio failo skaitymas grąžina dabartinio proceso proceso grupės ID, dešimtainis, nutraukiamas naudojant naują eilutę. / dev / user Šio failo skaitymas grąžina vieną įrašą, pasibaigiančią nauju tekstu. Laukai yra atskirti tarpai. $1 yra getuid (2) sistemos skambutis, $2 yra geteuid (2) sistemos skambutis, $3 yra gėjų (2) sistemos skambutis ir $4 yra getegid (2) sistemos skambutis. Jei yra papildomų laukų, tai yra grupių ID, kuriuos grąžino getgroups (2). Kelios grupės gali būti nepalaikomos visose sistemose. AWK turi šias integruotas aritmetines funkcijas: atan2 ( y , x ) Grąžina arktangentą iš y / x radianais. cos ( expr ) Grąžina kosinusą expr , kuris yra radians. exp ( expr ) Eksponentinė funkcija. int ( expr ) Truncates į sveikąjį skaičių. žurnalas ( expr ) Natūraliojo logaritmo funkcija. rand () Grąžina atsitiktinį skaičių tarp 0 ir 1. nuodėmė ( expr ) Grąžina sine iš expr , kuris yra radians. sqrt ( expr ) Kvadratinės šaknies funkcija. srand ( expr ) Naudoja expr kaip nauja atsitiktinių skaičių generatoriaus sėkla. Jei ne expr yra naudojamas dienos laikas. Grąžinamoji vertė yra ankstesnė atsitiktinių skaičių generatoriaus sėkla. Gawkas turi šias integruotas eilučių funkcijas: Asort ( s , d ) Grąžina šaltinio masyvo elementų skaičių s . Turinys s yra rūšiuojami naudojant gawk įprastos vertybių palyginimo taisyklės ir rūšiuotų verčių indeksai s yra pakeičiami nuosekliais sveikieji skaičiais, prasidedančiais nuo 1. Jei pasirinktinė paskirties masyvas d yra nurodyta, tada s pirmiausia dubliuojamas į d , ir tada d yra rūšiuojamas, paliekant šaltinio masyvo indeksus s nepakeistas. gensub ( r , s , h , t ) Ieškokite norimoje eilutėje t reguliaraus išraiškos rungtynėms r . Jei h yra eilutė, prasidedanti nuo g arba G, tada pakeiskite visas rungtynes iš r su s . Priešingu atveju h yra numeris, nurodantis, kuris atitikmuo r pakeisti. Jei t nepateikta $0 vietoj jo naudojamas. Pakeitimo tekste s , seka n , kur n yra skaitmuo nuo 1 iki 9, gali būti naudojamas norint nurodyti tik tą tekstą, kuris atitiko n 's skliausteliškas pogrupis. Seka 0 reprezentuoja visą suderintą tekstą, kaip ir simbolį &. Skirtingai nuo sub () ir gsub (), pakeista eilutė grąžinama kaip funkcijos rezultatas, o pirminė tikslinė eilutė yra ne pasikeitė gsub ( r , s , t ) Kiekvienai substringi atitinkanti įprastą išraišką r eilutėje t , pakeiskite eilutę s , ir grąžinti pakeitimų skaičių. Jei t nėra tiekiamas, naudokite $0. An & pakeitimo tekstas pakeičiamas tekstu, kuris iš tikrųjų buvo suderintas. Naudok & gauti tiesioginį žodį&. (Tai turi būti įvesti kaip '\&'; pamatyti GAWK: efektyvus AWK programavim
apibūdinimas
Pasirinkimo formatas
Galimybės
Kintamieji, įrašai ir laukai
Įrašai
Laukai
Integruoti kintamieji
Masyvai
Kintamasis įvedimas ir konversija
Aštuoni ir šešioliktainiai konstantos
Styginių konstantos
Modeliai ir veiksmai
Modeliai
Reguliarios išraiškos
Veiksmai
Operatoriai
Kontrolės ataskaitos
I / O pareiškimai
"Printf" pareiškimas
Specialieji failų vardai
Skaitinės funkcijos
Styginių funkcijos