Sužinokite Linux Command - gawk

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 teksto failas ...

Pgawk [POSIX arba GNU stiliaus parinktys] -f programos failas [ - ] failas ...
pgawk [POSIX arba GNU stiliaus parinktys] [ - ] programos teksto failas ...

apibūdinimas

Gawk yra AWK programavimo kalbos įgyvendinimo GNU projektas. Tai atitinka POSIX 1003.2 komandų kalbos ir komunalinių paslaugų standarto kalbos apibrėžimą. Savo ruožtu ši versija pagrįsta aprašymu AWK programavimo kalba Aho, Kernighan ir Weinberger su papildomomis funkcijomis, pateiktomis sistemoje V išleidimo 4 versija UNIX awk . "Gawk" taip pat pateikia naujausius "Bell Laboratories awk" plėtinius ir daugybę GNU pratęsimų.

Pgawk yra profilio versija gawk . Jis visais atžvilgiais yra toks pats, kaip ir " gawk" , išskyrus tai, kad programos veikia lėčiau, o failas automatiškai sukuria vykdymo profilį awkprof.out failo versijoje . Žiūrėkite toliau aprašytą "Profilio" parinktį.

Komandų eilutę sudaro galimybės pačiam išsisukti , AWK programos tekstas (jei nepateiktas naudojant -f arba -file parinkčių) ir vertės, kurios turi būti pateiktos iš anksto nustatytų AWK kintamųjų ARGC ir ARGV .

Pasirinkimo formatas

Gawk 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 naudojant argumentus " -W" parinkčiai. Galima pateikti keletą- W parinkčių Kiekvienai -W parinkčiai yra atitinkama ilga galimybė, kaip nurodyta toliau. Argumentai dėl ilgalaikių pasirinkčių yra sujungiami su parinktimi = = ženklas, 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.

Galimybės

Gawk priima šias parinktis, išvardytas abėcėlės tvarka.

-f fs

--field-separator fs Naudokite fs įvesties lauko skirtuvą ( FS iš anksto nustatyto kintamojo vertė).

-v var = val

--assign var = val Priskirti reikšmę val į kintamąjį var prieš pradedant programos vykdymą. Tokie kintamieji reikšmės yra prieinami AWK programos BEGIN blokui.

-f programos failas

--file program-file Perskaitykite AWK programos šaltinį iš failo programos failo , o ne iš pirmojo komandinės eilutės argumento. Galima naudoti keletą -f (arba --file ) parinkčių.

-mf NNN

-mr NNN Nustatykite įvairias atminties ribas NNN reikšmei. F vėliava nustato maksimalų laukų skaičių, o žymos " r" nustato maksimalų įrašo dydį. Šios dvi vėliavos ir -m parinktis yra Bell Laboratories mokslinių tyrimų versija UNIX awk . Jie ignoruoja gawk , nes gawk neturi iš anksto nustatytų apribojimų.

-W compat

-W tradicinis

--compat

--tradicinis paleisti suderinamumo režimu. Suderinamumo režimu gawk elgiasi identiškai su UNIX awk ; nė vienas iš konkrečių GNU plėtinių nėra pripažintas. Tradicinis naudojimas yra tinkamesnis už kitas šios parinkties formas. Daugiau informacijos rasite GNU EXTENSIONS .

-Kopileftas

-W autorių teisių

--copyleft

--privažiavimas Spausdinkite trumpą GNU autorinių teisių pranešimo versiją į standartinę išvestį ir sėkmingai išeikite.

-W dump-variables [ = failas ]

--dump-variables [ = file ] Spausdinti išsirinktą sąrašą globalių kintamųjų, jų tipų ir galutines vertes į failą . Jei failo nėra, gawk dabartiniame kataloge naudoja failą awkvars.out .

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 daryti paprastais kintamaisiais, pvz., I , j ir kt.)

-W help

-W naudojimo

--Pagalba

--usage Spausdinkite santykinai trumpą santrauką apie galimas parinktis standartinėje išvestyje. (Pagal GNU kodavimo standartus šios funkcijos sukelia greitą ir sėkmingą išėjimą.)

-W lint [ = mirtinas ]

--lint [ = mirtinas ] Pateikite įspėjimus apie konstrukcijas, kurios yra abejotinos ar nepanaikomos kitoms AWK diegimo priemonėms. Neprivalomas argumentas dėl mirtinų , lintinių įspėjimų tampa mirtinomis klaidomis. Tai gali būti drastiškas, tačiau jo naudojimas neabejotinai paskatins švaresnes AWK programas.

-Svarbus

--lint-old Įspėti apie konstrukcijas, kurios nėra perkeliamos į originalią Unix awk versiją.

-W gen-po

--gen-po Išskleisti ir analizuoti AWK programą ir generuoti GNU .po formato failą į standartinę išvestį su įrašais visoms programuojamoms eilutėms . Pati programa nėra vykdoma. Norėdami gauti daugiau informacijos apie .po failus, žr. GNU gettext parsisiuntimą .

-W ne dešimtainis duomenų

- ne dešimtainiai duomenys Atpažįsta aštuonkius ir šešioliktainius vertės įvesties duomenims. Naudokite šią parinktį labai atsargiai!

- W posix

--posix. Tai įjungiamas suderinamumo režimu su toliau nurodytais papildomais apribojimais:

*

\ x Escape sekos nėra atpažįstamos.

*

Tik erdvė ir skirtukas veikia kaip laukų atskyrikliai, kai FS yra nustatytas į vieną erdvę, naujoji eilutė nėra.

*

Negalite tęsti eilučių po ? ir :.

*

Raktinių žodžių funkcijos sinonimas func nėra atpažįstamas.

*

Operatoriai ** ir ** = negali būti naudojami vietoj ^ ir ^ = .

*

Fflush () funkcija negalima.

-W profilis [ = prof_file ]

--profile [ = prof_file ] Siųsti profilio duomenis į prof_file . Numatytasis yra awkprof.out . Kai paleisti su gawk , profilis yra tik "gana atspausdinta" programos versija. Kai paleidžiamas 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 Leidžia naudoti intervale išraiškas reguliariosios išraiškos suderinime (žr. žemiau). AWK kalba tradiciškai nėra intervale išraiškos. Standartas POSIX pridėjo juos, kad awk ir egrep atitiktų vienas kitą. Tačiau jų naudojimas, greičiausiai, sulaužys senas AWK programas, taigi gawk juos pateikia tik tuo atveju, jei jie prašomi su šia parinktimi arba kai yra nurodytas --posix .

-W šaltinio programos tekstas

--source program-text Naudokite programos tekstą kaip AWK programos šaltinio kodą. Ši parinktis leidžia lengvai susimaišyti bibliotekos funkcijas (naudojamas naudojant -f ir failų parinktis) su kodiniu kodu, įvestu į komandinę eilutę. Jis visų pirma skirtas vidutinio ir didelio AWK programoms, naudojamoms shell scenarijose.

-W versija

--version Šios konkrečios gawk kopijos standartinės išvesties versijos informacijos versija. Tai labiausiai naudinga žinant, ar dabartinė jūsų sistemoje gawk kopija yra naujausi, nesvarbu, kokia "Free Software Foundation" platina. Tai taip pat naudinga pranešant apie klaidas. (Pagal GNU kodavimo standartus šios funkcijos sukelia greitą ir sėkmingą išėjimą.)

- Signalo pabaigos parinktys. 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. Įprastai veikiant, jei programinės įrangos tekstas buvo pateiktas, nežinomos parinktys perduodamos ARWG masyvo AWK programai apdoroti. 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ų teiginiai }

funkcijos pavadinimas ( parametrų sąrašas ) { statements }

Gawkas pirmiausia nuskaito programos šaltinį iš programos failo (-ų), jei jis nurodytas, iš argumentų į šaltinį arba iš pirmojo neparametruoto argumento komandinės eilutės. " -f" ir " -source" parinktys gali būti naudojamos kelis kartus komandinėje eilutėje. Gawkas skaito programos tekstą taip, lyg visas programos failas s ir komandinės eilutės šaltinio tekstai būtų 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ų, nurodytų su parinktimi -f . 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 variantui, turi simbolį `/ / ', joks kelias ieškoma ne.

Gawk vykdo AWK programas tokia tvarka. Pirma, visi variantai, nurodyti per -v parinktį, atliekami. Be to, gawk kompiliuoja programą į vidinę formą. Tada gawk vykdo kodą į BEGIN bloką (-us) (jei yra), tada tęsia skaityti kiekvieną failą, nurodytą ARGV masyve. Jei komandų eilutėje nėra failų, gawk skaito standartinę įvestį.

Jei komandų eilutės failo pavadinimas turi formą var = val, ji laikoma kintama paskirtimi. Keičiamam varui bus priskirta vertė val . (Tai atsitinka po bet kurio BEGIN bloko (-ų) paleidimo.) Komandinės eilutės kintamojo priskyrimas yra labiausiai naudingas dinaminiam priskyrimui reikšmėms kintamiesiems, kuriuos AWK naudoja valdydamas, kaip įvesta informacija yra sugadinta į laukus ir įrašus. Tai taip pat naudinga valdant būseną, jei reikia vienos duomenų bylos kelis kartus.

Jei konkretaus ARGV elemento vertė yra tuščia ( "" ), gawk praleidžia jį.

Kiekvienam įrašo įraše gawk bandymai, siekiant nustatyti, ar jis atitinka bet kurį modelį AWK programoje. Kiekvienam rekordui priklausančio modelio vykdomas susijęs veiksmas . Šablonai yra išbandomi taip, kaip jie rodomi programoje.

Galiausiai, kai visi įvestis yra išnaudota, gawk vykdo kodą END bloko (-ų) (jei yra).

Kintamieji, įrašai ir laukai

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.

Įrašai

Paprastai įrašai yra atskirti naujomis eilutėmis. Galite valdyti, kaip atskiri įrašai, priskiriant reikšmes integruotam kintamojo RS . Jei RS yra bet koks vienas simbolis, šis simbolis atskiria įrašus. Priešingu atveju RS yra įprasta 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 nustatytas į nulinę eilutę, įrašai yra atskirti tuščiomis eilutėmis. Kai RS yra nustatytas į nulinę eilutę, naujos eilutės simbolis visada veikia kaip lauko skirtuvas, be to, kokia reikšmė FS gali būti.

Laukai

Kai kiekvienas įvesties įrašas yra skaitomas, gawk padalija įrašą į laukus , naudodamas FS kintamojo reikšmę kaip lauko skirtuką. Jei FS yra vienas simbolis, laukai yra atskirti šiuo simboliu. Jei FS yra nulinė eilutė, kiekvienas atskiras simbolis tampa atskiru lauku. Kitaip FS tikimasi visiškai reguliarios išraiškos. Tam tikrais atvejais, kai FS yra viena erdvė, laukai yra atskirti tarpų ir / arba skirtukų ir (arba) naujų eilučių trasomis. (Tačiau žr. Poslinkio aptarimą žemiau). PASTABA: IGNORECASE vertė (žr. Toliau) taip pat paveikia laukų padalijimą, kai FS yra įprastinė išraiška ir kaip atskiriami įrašai, kai RS yra įprastinė išraiška.

Jei FIELDWIDTHS kintamasis yra nustatytas kaip atskirtas skaičių tarpas, kiekvienas laukas turi būti fiksuotas, o gawk suskaidomas įrašas naudojant nurodytus plotis. FS vertė nepaisoma. Naujos FS priskyrimas pakeičia FIELDWIDTHS naudojimą ir atkuria numatytą elgesį.

Į kiekvieną įvesties įrašo lauką gali būti nurodomos jos pozicijos, $ 1 , $ 2 ir tt $ 0 yra visas įrašas. Konstantos neturi būti nuorodos į laukus:

n = 5
atspausdinti $ n

įvesties įraše atspausdina penktąjį lauką.

Kintamasis NF nustatomas į bendrą laukų skaičių įvesties įraše.

Nuorodos į neegzistuojančius laukus (ty laukai po $ NF ) generuoja nulinės eilutės. Tačiau priskyrimas neegzistuojančiam laukui (pvz., $ (NF + 2) = 5 ) padidina NF vertę, sukuria bet kokius tarpinius laukus su nuline eilute kaip jų verte ir sukelia 0 $ vertės pakartotinį apskaičiavimą su laukai yra atskirti OFS vertę. Nuorodos į neigiamus numeruojamus laukus sukelia mirtiną klaidą. Decrementing NF sukelia laukų reikšmes, viršijančias naują vertę, ir praranda 0 $ vertę, o laukai yra atskirti OFS reikšme.

Priskiriant reikšmę esamam laukui, visas įrašas bus atstatytas, kai bus nurodytas 0 $ . Panašiai, priskirdama reikšmę $ 0, sukelia įrašo pertvarkymą, kuriant naujas laukų reikšmes.

Integruoti kintamieji

"Gawk " integruojami kintamieji yra:

ARGC

Komandų eilutės argumentų skaičius (neįtraukta į gawk arba programos šaltinio parinktis).

ARGIND

Dabartinio failo ARGV indeksas yra apdorojamas.

ARGV

Komandinės eilutės argumentų masyvas. Masyvas indeksuojamas nuo 0 iki ARGC - 1. Dinaminis ARGV turinio keitimas 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 "r" arba "w" reikšmės nurodo, kad atitinkamai įvesties failai arba išvesties failai turėtų naudoti dvejetainius I / O. String reikšmės "rw" arba "wr" nurodo, kad visi failai turėtų naudoti dvejetainius I / O. Bet kokia kita eilutės reikšmė laikoma "rw" , bet sukuria įspėjimo pranešimą.

CONVFMT

Numatytasis konversijos formatas, "% .6g" .

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 ). Šios masyvo keitimas neturi įtakos aplinkai, kurią mato programas, kurias gawk kyla per nukreipimą arba sistemos () funkciją.

ERRNO

Jei atsiranda sisteminė klaida arba atliekant peradresavimą į getline , per readline for getline arba uždarymo metu () , 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 nustatomas, gawk analizuoja įvestį į fiksuoto pločio laukus, o ne naudoja FS kintamojo reikšmę kaip lauko skirtuką.

FAILO PAVADINIMAS

Dabartinio įvesties failo pavadinimas. Jei komandų eilutėje nenurodyta jokių failų, FILENAME reikšmė yra `` - ''. Tačiau " FILENAME " neapibrėžtas BEGIN bloko viduje (nebent nustatytas getline ).

FNR

Įvesties įrašo numeris dabartiniame įvesties faile.

FS

Įvesties lauko skirtukas, numatytasis tarpas. Žr. Laukus aukščiau.

IGNORECASE

Kontroliuoja visų reguliariosios išraiškos ir eilučių operacijų jautrumą. Jei IGNORECASE vertė yra lygi nuliui, tada eilučių palyginimai ir modelio atitikimas taisyklėse, laukas, suskaidomas su FS , įrašas atskiriamas su RS , reguliaraus išraiško atitikimas su ~ ir ! ~ Ir gensub () , gsub () , indeksas () , " match ()" , " split ()" ir " sub" () integruotos funkcijos ignoruoja atvejį vykdydami veiksmus su įprastai išreikšta. PASTABA: Array subcripting neturi įtakos, taip pat nėra asort () funkcija.

Taigi, jei IGNORECASE nėra lygus nuliui, / aB / atitinka visas eilutes "ab" , "aB" , "Ab" ir "AB" . Kaip ir su visais AWK kintamaisiais, pradinė reikšmė IGNORECASE yra lygi nuliui, taigi visos reguliariosios išraiškos ir eilučių operacijos paprastai yra registruojamos didžiosios raidės. Pagal Unix, ignoruojant atvejį, naudojamas visas ISO 8859-1 lotynų-1 simbolių rinkinys.

LINT

Suteikia dinaminę " -lint" parinkties kontrolę iš AWK programos. Kai tiesa, gawk atspausdina raudonus įspėjimus. Kai klaidinga, tai nėra. Kai priskiriama eilutės reikšmė "mirtinas" , lintiniai įspėjimai tampa mirtinais klaidomis, tiksliai taip pat, kaip - 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

Numatytų formatų išvestis, "% .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ų: "group1" - per " n " grupę kai kuriems n , tai yra papildomų grupių, kurių procesas yra, skaičius. Naudokite operatorių, norėdami patikrinti šiuos elementus. Gali būti prieinami šie elementai:

PROCINFO ["egid"]

getegid (2) sistemos skambučio vertė.

PROCINFO ["euid"]

geteuid (2) sistemos skambučio vertė.

PROCINFO ["FS"]

"FS", jei laukas suskaidomas su "FS" , arba "FIELDWIDTHS", jei laukas suskaidomas su FIELDWIDTHS .

PROCINFO ["gid"]

getgid (2) sistemos skambučio vertė.

PROCINFO ["pgrpid"]

dabartinio proceso proceso grupės ID.

PROCINFO ["pid"]

dabartinio proceso proceso ID.

PROCINFO ["ppid"]

dabartinio proceso tėvų proceso ID.

PROCINFO ["uid"]

getuid (2) sistemos skambučio vertė.

RS

Įvesties įrašų atskyriklis pagal nutylėjimą yra naujoji eilutė.

RT

Rekordas terminatorius. Gawk nustato RT į įvesties tekstą, kuris atitinka RS nurodytą simbolį ar įprastinę išraišką.

RSTART

Pirmojo simbolio, suderinto su atitikmeniu, indeksas () ; 0 jei rungtynių nėra. (Tai reiškia, kad simbolių rodikliai prasideda viename.)

RLENGTH

Styga, suderinta su atitiktimi () ; -1 jei rungtynių nėra.

PAPILDYMAS

Simbolis, naudojamas atskiriems elementams atskirti masyvo elementuose, pagal nutylėjimą "\ 034" .

TEXTDOMAIN

AWK programos teksto domenas; naudojamas rasti lokalizuotus vertimus į programos eilutes.

Masyvai

Masyvai yra išreikšti tarp laužtiniuose skliaustuose ( [ 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, atskirto SUBSEP kintamojo reikšme . Ši priemonė naudojama imituojant daugybę matmenų masyvus. Pavyzdžiui:

i = "A"; j = "B"; k = "C"
x [i, j, k] = "sveika, pasaulis \ n"

priskiria eilutę "hello, world \ n" į masyvo x elementą, kuris yra indeksuotas eilute "A \ 034B \ 034C" . Visi AWK masyvai yra asociaciniai, ty indeksuojami eilučių reikšmėmis.

Specialusis operatorius gali būti naudojamas ataskaitoje if arba while, norėdami pamatyti, ar masyvas turi indeksą, kurį sudaro tam tikra reikšmė.

jei (val in array) spausdinimo masyvas [val]

Jei masyvas turi kelis indeksus, masyvu naudokite (i, j) .

Konstruktas taip pat gali būti naudojamas kilpui, kad jis būtų kartojamas per visus masyvo elementus.

Elementas gali būti ištrintas iš masyvo, naudojant išbraukimo teiginį. Išbraukimo teiginys taip pat gali būti naudojamas ištrinti visą masyvo turinį, tik nurodant masyvo pavadinimą be indikatoriaus.

Kintamasis įvedimas ir konversija

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 CONVFMT vertę kaip sprintf formato eilutę (3), o kintamoji reikšmė yra argumentas. Tačiau, nors visi AWK skaičiai yra slankiojo kablelio, integralinės vertės visada yra paverstos sveikais skaičiais. Taigi, duota

CONVFMT = "% 2.2f" a = 12 b = ""

kintamasis b turi eilutės reikšmę "12", o ne "12.00" .

Gawk atlieka palyginimus taip: jei du kintamieji yra skaitiniai, jie yra lyginami skaičiais. 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, o gawk to nedaro. (Laimei, tai yra nustatyta kitoje standarto versijoje.)

Atkreipkite dėmesį, kad eilutės konstantos, pvz., "57" , nėra skaičių eilutės, jos yra eilutės konstantos. "Skaitinių eilučių" idėja taikoma tik laukams, getline įvedimui, FILENAME , ARGV elementams, ENVIRON elementams ir masyvo elementams, sukurtiems dalimis (), kurie yra skaitinės eilutės. Pagrindinė idėja yra ta, kad naudotojo įvestis ir tik naudotojo įvestis, kuri atrodo skaičiais, turėtų būti traktuojama tokiu būdu.

Neinitializuoti kintamieji turi skaitinę reikšmę 0 ir eilutės reikšmę "" (nulinė arba tuščia eilutė).

Aštuoni ir šešioliktainiai konstantos

Pradedant " gawk" versijos 3.1 versija , galite naudoti "C" stiliaus aštuonkius ir šešioliktainius konstantus savo AWK programos pradiniame kode. Pavyzdžiui, aštuoninė vertė 011 yra lygi dešimtainiam skaičiavimui 9 , o šešioliktainė reikšmė 0x11 yra lygi dešimtainiam skaičiavimui .

Styginių konstantos

AWK eilučių konstantos yra simbolių seka tarp dvigubų kabučių ( " ). Per eilutes tam tikros evoliucijos sekos atpažįstamos, 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šių skaitmenų

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ą pranešti komitete.) Pvz., "\ X1B" yra ASCIIESC (pabėgėlio) simbolis.

\ ddd

Simbolis, kurį sudaro 1-, 2-, arba 3-ženklų aštuonkų skaičių seka. Pvz., "\ 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] / atitinka 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 lygus / a \ * b / .

Modeliai ir veiksmai

AWK yra orientuota į liniją kalba. Pirmasis modelis, o tada veiksmas. Veiksmų ataskaitos pridedamos { and } . 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 netaikoma eilučiams, kurie baigiasi simboliu ``, '', { , ? , : , && , arba || . Linijos, kurios baigiasi daryti, arba jų teiginiai automatiškai tęsiami toliau esančioje eilutėje. 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.

Modeliai

AWK modeliai gali būti viena iš šių:

BEGIN END / reguliarios išraiškos / santykinės išraiškos modelis & & modelio modelis || modelio modelis ? modelis : modelis ( modelis ) ! modelio modelis1 , modelis2

BEGIN ir END yra du specialūs modeliai, kurie nėra išbandyti prieš įvestį. Visų BEGIN modelių veikimo dalys sujungiamos taip, tarsi visi teiginiai būtų parašyti viename BEGIN blokelyje. Jie yra įvykdyti prieš pradedant bet kokį įvesties skaitymą. Panašiai visi END blokai sujungti ir vykdomi, kai visi įvesties duomenys yra išeikvoti (arba kai vykdomas išėjimo pranešimas). BEGIN ir END šablonai negali būti derinami su kitais modelio išraiškos modeliais. BEGIN ir END šablonai negali turėti trūkstamų veiksmų dalių.

Norint / reguliarios išraiškos / modeliai, kiekviena įvesties įrašo, atitinkančio įprastinę išraišką, vykdoma susijusi pažyma. Reguliariosios išraiškos yra tokios pačios, kaip ir egrep (1), ir apibendrintos toliau.

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ą.

&& , || , 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.

" ?": Operatorius yra tas pats operatorius iš C. Jei pirmasis modelis yra teisingas, bandymui naudojamas modelis yra antrasis modelis, kitaip jis yra trečias. Tik vienas iš antrojo ir trečiojo modelių yra vertinamas.

Išraiškos modelis1 , modelis2 yra vadinamas diapazono modeliu . Jis atitinka visus įvesties įrašus, pradedant įrašu, atitinkančiu modelį1 , ir tęsiasi iki įrašo, atitinkančio modelį2 (įskaitant). Jis nesuderinamas su jokiu kitu modelio raiška.

Reguliarios išraiškos

Reguliarios išraiškos yra išplėstos rūšys, randamos egrep . Jie susideda iš šių simbolių:

c

atitinka ne metacharacter c .

\ c

atitinka raidinį simbolį c .

.

atitinka bet kurį simbolį, įskaitant naują eilutę.

^

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 r1 arba r2 .

r1r2

sujungimas: atitinka r1 , o tada r2 .

r +

atitinka vieną ar daugiau r .

r *

atitinka nulį ar daugiau r .

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. Jei liemenyje yra vienas skaitmuo, ankstesnė reguliarioji išraiška r pakartojama n kartų. Jei yra du skaitmenys, atskirti kableliu, r pakartojamas n iki m kartus. Jei yra vienas skaitmuo po kablelio, tuomet r pasikartoja mažiausiai n kartų.

Tarpinės išraiškos yra prieinamos tik tuo atveju, jei komandinėje eilutėje yra nurodytas arba --posix arba --re-intervalas .

\ 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, įvesta 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 raiškoje, esančiame simbolių sąrašo skliausteliuose. Simbolių klasės susideda iš [: klavišo, žyminčio 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. (Erdvė spausdinama, bet nematoma, o 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 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:]] / , o tai atitinka simbolių rinkinio abėcėlinius ir skaitmeninius simbolius.

Dvi papildomos specialios sekos gali pasirodyti simbolių sąrašuose. Jie taikomi ne ASCII simbolių rinkiniams, kurie gali turėti atskirus simbolius (vadinamuosius lyginamuosius elementus ), kurie yra vaizduojami daugiau nei vienu ženklu, taip pat keletą simbolių, kurie yra lygiaverčiai lyginant arba rūšiuojant tikslus. (Pvz., Prancūzų kalba paprastas "e" ir rimtas akcentuotas e "yra lygiaverčiai).

Simbolių susiejimas

Suderinamas simbolis yra kelių simbolių lyginamasis elementas, uždėtas [. ir .] . Pavyzdžiui, jei ch yra lyginantysis elementas, tada [[.ch.]] Yra įprastai išreikšta frazė, atitinkanti šį lyginamąjį elementą, o [ch] yra įprastai išreikšta frazė, atitinkanti arba c, arba h .

Lygiavertiškumo klases

Ekvivalentiškumo klasė yra vietovardžiai, atitinkantys simbolių, kurie yra lygiaverčiai, sąrašą. Pavadinimas pateikiamas [= and =] . Pavyzdžiui, vardas e gali būti naudojamas atstovauti visoms "e", "e", "" ir "e". "Šiuo atveju [[= e =]] yra reguliaraus išraiškos atitinka bet kurį iš e , e ' arba e' .

Šios savybės yra labai vertingos ne angliškai kalbančiose vietovėse. Bibliotekoje funkcijos, kurias " gawk" naudoja reguliariosios išraiškos atitikimui, šiuo metu pripažįsta tik POSIX simbolių klases; jie neatpažįsta lyginamųjų simbolių ar lygiavertiškumo klasių.

\ 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 reguliuoja, kaip gawk interpretuoja simbolius į įprastines išraiškas.

Jokių galimybių

Numatytoje situacijoje gawk pateikia visus POSIX reguliariosios išraiškos ir aukščiau aprašytų GNU reguliaraus išraiškos operatorių įrenginius. 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 burtą w ). Intervale išraiškos leidžiamos.

- tradicinis

Tradiciniai Unix awk reguliariosios išraiškos yra suderintos. GNU operatoriai nėra specialūs, tarpiniai išraiškos nėra, ir nėra POSIX ženklų klasių ( [[: alnum:]] ir tt). 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 reguliariosiose išraiškose, net jei - tradicinis .

Veiksmai

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.

Operatoriai

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 naudojama, o ** = priskyrimo operatoriui).

+ -!

Unary plus, unary minusas ir loginis negacija.

* /%

Daugyba, padalijimas ir modulis.

+ -

Papildymas ir atimtis.

erdvė

Styginių sujungimas.

<>

<=> =

! = == Reguliarūs reliaciniai operatoriai.

~! ~

Reguliariosios išraiškos atitikimas, neigiamas atitikimas. PASTABA: Nenaudokite pastovios reguliaraus išraiškos ( / foo / ) kairėje ~ arba ! ~ Pusėje. Naudokite tik vieną dešinėje pusėje. Sąvoka / foo / ~ exp turi tokią pačią reikšmę kaip (($ 0 ~ / foo /) ~ exp ) . Paprastai tai nėra tai, 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 tiesa, išraiškos reikšmė yra expr2 , priešingu atveju tai yra expr3 . Tik vienas iš EXPR2 ir EXPR3 įvertinamas.

= + = - =

* = / =% = ^ = Priskyrimas. Tiek absoliuti priskyrimas ( var = vertė ), tiek operatoriaus priskyrimas (kitos formos) yra palaikomos.

Kontrolės ataskaitos

Kontrolės ataskaitos yra tokios:

jei ( sąlyga ) pareiškimas [ else statement ] while ( condition ) statement do statement while ( sąlyga ) for ( expr1 ; expr2 ; expr3 ) statement for ( var in array ) statement break continue delete array [ index ] delete array exit [ expression ] { pareiškimai }

I / O pareiškimai

Įvesties / išvesties ataskaitos yra tokios:

uždaryti ( failas [ , kaip ] )

Uždarykite failą, vamzdį arba bendrai apdorokite. Neprivalomas būdas turėtų būti naudojamas tik tuo atveju, kai uždaromas vienas dvipusio vamzdžio galas bendro proceso metu. Tai turi būti eilutės reikšmė, "į" arba "iš" .

getline

Nustatykite 0 $ iš kito įvesties įrašo; nustatyti NF , NR , FNR .

getline < file

Nustatykite $ 0 iš kito failo įrašo; nustatyti NF .

getline var

Nustatyti var nuo kito įvesties įrašo; nustatyti NR , FNR .

getline var < file

Nustatyti var nuo kito failo įrašo.

komanda | getline [ var ]

Paleiskite komandų vamzdynus išvesties į $ 0 arba var , kaip nurodyta aukščiau.

komanda | & getline [ var ]

Paleiskite komandą kaip bendro proceso vamzdyną, išvesdami į $ 0 arba var , kaip nurodyta aukščiau. Bendro procesai yra 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, įvykdomas END blokas (-iai), jei toks yra.

nextfile

Sustabdyti dabartinio įvesties failo apdorojimą. Kitas įrašo įrašas skaitomas iš kito įvesties failo. FILENAME ir ARGIND yra atnaujinamos, FNR nustatoma iš naujo į 1, o apdorojimas prasideda nuo pirmojo AWK programos modelio. Jei įvesties duomenų pabaiga pasiekiama, įvykdomas END blokas (-iai), jei toks yra.

spausdinti

Spausdina dabartinį įrašą. Išvesties įrašas nutraukiamas naudojant ORS kintamojo reikšmę.

spausdinti expr-list

Spausdina išraiškas. Kiekviena išraiška yra atskirta OFS kintamojo reikšme. Išvesties įrašas nutraukiamas naudojant ORS kintamojo reikšmę.

spausdinti expr-list > failą

Spausdina išraiškas į failą . Kiekviena išraiška yra atskirta OFS kintamojo reikšme. Išvesties įrašas nutraukiamas naudojant ORS kintamojo reikšmę.

printf fmt, expr-list

Formatavimas ir spausdinimas.

printf fmt, expr-list > failas

Formatuokite ir atspausdinkite į failą .

sistema ( cmd-line )

Vykdykite komandą cmd-line ir grąžinkite 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 failais . Jei failo trūksta, tada standartinė išvestis išplaukiama. Jei failas yra nulinė eilutė, tada visi atviros išvesties failai ir vamzdeliai išvalomi.

Papildomos išvesties peradresavimai leidžiami spausdinti ir spausdinti .

spausdinti ... >> failą

prideda išvesties į failą .

spausdinti ... | komanda

rašo ant vamzdžio.

spausdinti ... | & komandą

siunčia duomenis bendram procesui.

Komandos getline grąžina 0 failo pabaigoje ir -1 dėl klaidos. Klaida, ERRNO yra eilutė, apibūdinanti problemą.

PASTABA: jei naudojate vamzdį arba bendrą procesą getline arba spausdinimui arba spausdinimui faile , naudokite uždaryti (), kad sukurtumėte naujus komandos pavyzdžius. AWK ne automatiškai uždaro vamzdžius ar bendrai apdoroja, kai grįš EOF.

"Printf" pareiškimas

" Printf" ir " sprintf ()" funkcijų AWK versijos (žr. Toliau) priima tokius konversijos specifikacijų formatus:

% c

ASCII simbolis. Jei argumentas, naudojamas % c, yra skaitinis, jis laikomas simboliu ir išspausdintas. 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 slankiojo kablelio numeris [-] d.dddddde [+ -] dd . % E formatas naudoja " E", o ne " e" .

% f

Formos slankiojo kablelio numeris [-] ddd.dddddd .

% g,% G

Naudokite % e arba % f konvertavimą, priklausomai nuo to, kas yra trumpesnis, su nereikšmingais nuliais. Formatas % G naudoja % E, o ne % e .

% o

Nepakeista aštuonkis numeris (taip pat sveikasis skaičius).

% u Nepakeista dešimtainis skaičius (dar kartą, sveikasis skaičius).

% s

Simbolių eilutė.

% x,% X

Nepasirašytas šešioliktainis numeris (sveikasis skaičius). % X formatas naudoja ABCDEF, o ne abcdef .

%%

Vieno simbolio % ; nė vienas argumentas nėra konvertuojamas.

Pasirinktinai papildomi parametrai gali būti tarp % ir kontrolinės raidės:

suskaičiuoti $

Šiuo skaičiavimo argumentu naudokite šį formatavimo tašką. Tai vadinama padėties specifiku ir yra visų pirma skirta naudoti vertimo formato stygų versijose, o ne originaliame AWK programos tekste. Tai 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. + Pakeičia vietos modifikatorių.

#

Naudokite "` alternatyvią formą '' tam tikrų kontrolinių raidžių. % O atveju pateikite pirmaeilę nulį. Jei % x ir % X , pateikite pirmaeilę 0x arba 0Xnulinį rezultatą. % E , % E ir % f atveju rezultatas visada turi dešimtainį kablelį. Jei % g ir % G , pabaigos nuliai nėra pašalinami iš rezultato.

0

Pirminis 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 buvo naudojama 0 vėliava, ji užpildyta nuliais.

. tiksliai

Skaičius, nurodantis spausdinimo tikslumą. % E , % E ir % f formatuose nurodomas skaičių skaitmenų, kuriuos norite išspausdinti dešinėje dešinėje pusėje. % G ir % G formatuose nurodomas didžiausias reikšmingų skaitmenų skaičius. % D , % o , % i , % u , % x ir % X formatuose nurodomas mažiausias spausdinamų skaitmenų skaičius. % S nurodo maksimalų simbolių skaičių iš eilutės, kuri turėtų būti atspausdinta.

ANSI C printf () tvarkos dinaminis plotis ir tikslumas yra palaikomi. A * vietoj pločio arba konkrečių specifikacijų vertes galima paimti iš argumentų sąrašo į printf arba sprintf () . Jei norite naudoti pozicijos specifikaciją su dinaminiu pločiu ar tikslumu, pateikite skaičių $ po * formato eilutėje. Pavyzdžiui, "% 3 $ * 2 $. * 1 $ s" .

Specialieji failų vardai

Kai vykdydamas I / O peradresavimą iš spausdinimo arba printf į failą arba per getline iš failo, gawk atpažįsta tam tikras specialias failų pavadinimus. Šie failų pavadinimai leidžia atidaryti failų aprašus, paveldėtus iš gawk tėvų proceso (paprastai apvalkalo). Š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"

Su " | & co-process operatoriumi" galite kurti TCP / IP tinklo jungtis kurti specialius failų pavadinimus.

/ inet / tcp / lport / rhost / rport

Failas, skirtas TCP / IP ryšiui vietiniame portale prie nuotolinio prieglobos serverio nuotolinio prievado rotate . Naudokite 0 prievadą, kad sistema pasirinktų prievadą.

/ inet / udp / lport / rhost / rport

Panašus, bet naudokite UDP / IP vietoj TCP / IP.

/ inet / raw / lport / rhost / rport

Rezervuota naudoti ateityje.

Kiti specialieji failų pavadinimai suteikia prieigą prie informacijos apie veikiančią gawk procesą. Šie failų pavadinimai yra pasenę. Naudokite PROCINFO masyvą, kad gautumėte 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 skambučio vertė, $ 2 yra geteuid (2) sistemos skambučio vertė, $ 3 yra getgid (2) sistemos skambučio vertė ir $ 4 yra getegid (2) vertė, sistemos skambutis. Jei yra papildomų laukų, tai yra grupių ID, kuriuos grąžina getgroups (2). Kelios grupės gali būti nepalaikomos visose sistemose.

Skaitinės funkcijos

AWK turi šias integruotas aritmetines funkcijas:

atan2 ( y , x )

Grąžina Y / x arktangentą radianais.

cos ( expr )

Grąžina expr kompoziciją, kuri yra radianais.

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 expr sinonę , kuri yra radianais.

sqrt ( expr )

Kvadratinės šaknies funkcija.

srand ( [ expr ] )

Naudoja expr kaip naują atsitiktinių skaičių generatoriaus sėklą. Jei nenurodyta expr , naudojamas dienos laikas. Grąžinamoji vertė yra ankstesnė atsitiktinių skaičių generatoriaus sėkla.

Styginių funkcijos

"Gawk" turi šias integruotas eilučių funkcijas:

Asort ( s [ , d ] )

Grąžina elementų skaičių šaltinio masyvo s . S turinys yra rūšiuojamas pagal gawk įprastas verčių palyginimo taisykles, o s rūšiuotų reikšmių indeksai pakeičiami nuosekliais sveikieji skaičiais, prasidedančiais nuo 1. Jei pasirenkamas pasirenkamasis paskirties masyvas d , tada s pirmiausia yra dubliuojamas į d , o tada d rūšiuojama, paliekant šaltinio masyvo indeksus nepakitę.

gensub ( r , s , h [ , t ] )

Ieškokite norimoje eilutėje t įprastinės išraiškos r rungtynėms. Jei h yra eilutė, prasidedanti g arba G , tada pakeiskite visas r rungtynes s . Priešingu atveju, h yra skaičius, rodantis, kuris atitikmuo r pakeičiamas. Jei t nepateikiama, vietoje jo naudojamas 0 LTL . Pakeisto teksto s eilutėje \ n , kur n yra skaitmuo nuo 1 iki 9, gali būti naudojamas tik tame pačiam tekstui, kuris atitiko n apibendrintą subekspresiją. Seka \ 0 reiškia visą suderintą tekstą, kaip ir simbolį & . Skirtingai nuo sub () ir gsub () , pakeista eilutė grąžinama kaip funkcijos rezultatas, o pirminė taikinio eilutė nekeičiama .

gsub ( r , s [ , t ] )

Kiekvienai substringi, atitinkančiai įprastinę išraišką r eilutėje t , pakeiskite eilutę s ir grąžinkite pakeitimų skaičių. Jei t nepateikta, naudokite $ 0 . Pakeitimo tekstas pakeičiamas tekstu, kuris buvo iš tikrųjų suderintas. Naudokite \ & norėdami gauti pažodinį & . (Tai turi būti įvesta kaip "\\ &" ; skaitykite GAWK: efektyvus AWK programavimas, norėdami išsamiau aptarti " sub" , " gsub ()" ir " gensub" () pakeitimų tekstus ir grįžtančius brūkšnius .

indeksas ( s , t )

Grąžina eilutės t indeksą eilutėje s arba 0, jei t nėra. (Tai reiškia, kad simbolių rodikliai prasideda viename.)

ilgis ( [ s ] )

Grąžina eilutės s ilgį arba $ 0 ilgį, jei s nepateikiamas.

rungtynės ( s , r [ , a ] )

Grąžina poziciją s, kur yra įprastinė išraiška r , arba 0, jei r nėra, ir nustato RSTART ir RLENGTH reikšmes . Atkreipkite dėmesį, kad argumentų tvarka yra tokia pati kaip ir operatoriui: str ~ re . Jei pateikiamas masyvas a , a yra išvalytas ir tada elementai 1 iki n užpildomi s dalimis, atitinkančiomis atitinkamą skliaustytą subekspraipsnį r . 0-as elementas a turi s dalį, suderintą su visa įprasta repozicija r .

split ( s , a [ , r ] )

Skiriasi eilutė s į masyvą a į įprastinę išraišką r ir grąžina laukų skaičių. Jei r yra praleistas, vietoj jo naudojamas FS . Masyvas a išvalomas pirmiausia. Padalijimas elgiasi taip pat, kaip ir lauko padalijimas, aprašytas aukščiau.

sprintf ( fmt , expr-list )

Spausdina expr sąrašą pagal fmt ir grąžina gaunamą eilutę.

strtonum ( str )

Išnagrinėja str , ir grąžina savo skaitinę reikšmę. Jei str prasideda nuo pirmaujančio 0 , strtonum () daro prielaidą, kad str yra aštuonkis skaičius. Jei str prasideda nuo pagrindinio 0x arba 0X , strtonum () numato, kad str yra šešioliktainis skaičius.

sub ( r , s [ , t ] )

Tiesiog kaip gsub () , bet pakeičiama tik pirmoji atitinkama substranga.

substr ( s , i [ , n ] )

Grąžina daugiausiai n- charakterio substring, pradedant i . Jei n praleistas, naudojama likusi s dalis.

tolower ( str )

Grąžina eilutės str kopiją su visais didžiosios raidės simboliais, išverstais į jų atitinkamus mažo dydžio bylas. Nebalansiniai simboliai lieka nepakeisti.

toupper ( str )

Grąžina eilutės str kopiją su visais mažaisiais simboliais, išverstais į jų atitinkamus didžiųjų raidžių atitikmenis. Nebalansiniai simboliai lieka nepakeisti.

Laiko funkcijos

Kadangi vienas iš pagrindinių AWK programų naudojimo tvarko žurnalo rinkmenas, kuriose yra laiko žymos informacija, gawk pateikia šias funkcijas, skirtas laiko spaudams gauti ir jų formavimui.

mktime ( datespec )

Rurns įvyksta į tą pačią formą, kurią grąžino systime () . Datos yra eilutės forma YYYY MM DD HH MM SS [DST] . Stygos turinys yra šeši ar septyni skaičiai, atitinkamai atitinkantys visus metus, įskaitant amžių, mėnesį nuo 1 iki 12, mėnesio nuo 1 iki 31 dienos, dienos valandą nuo 0 iki 23, minutę nuo 0 iki 59, o antrasis - nuo 0 iki 60 ir pasirenkama vasaros gaivinimo vėliava. Šių skaičių reikšmės neturi būti nurodytos nurodytose diapazone; Pavyzdžiui, valandos -1 reiškia 1 valandą iki vidurnakčio. Daroma prielaida, kad gregorio kalendoriaus kilmė yra lygi nuliui, o metų 0 yra ankstesnių metų 1 ir -1 metų prieš metus 0. Laikoma, kad laikas yra vietiniame laiko juostoje. Jei dienos šviesos taupymo žyma yra teigiama, laikoma, kad laikas yra vasaros laikas; jei nulis, laikas laikomas standartiniu laiku; ir, jei neigiamas (pagal numatytuosius nustatymus), mktime () bando nustatyti, ar tam tikru laiku galioja vasaros laikas. Jei datepec nėra pakankamai elementų arba jei gautas laikas yra už ribų, mktime () grąžina -1.

strftime ( [ format [ , timestamp ]]] )

Formatas laiko žymos pagal specifikacijos formatu. Laikmatis turi būti tokios pačios kaip ir grąžintas systime () . Jei trūksta laiko žymos , naudojamas dabartinis dienos laikas. Jei formato trūksta, naudojamas numatytasis formatas, atitinkantis datos (1) išvestį. Žiūrėkite funkcijos strftime () funkciją ANSI C formato konversijoms, kurios, kaip tikėtina , bus prieinamos. " Strftime" (3) viešoji domeno versija ir "man" puslapis pateikiama su " gawk" ; jei ši versija buvo naudojama " gawk" kūrimui , tada visos šio puslapio aprašytos konversijos gali būti prieinamos gawk.

systime ()

Grąžina dabartinį dienos laiką kaip sekundžių skaičių nuo Epochos (1970-01-01 00:00:00 UTC POSIX sistemose).

Bitų manipuliavimo funkcijos

Nuo gawk versijos 3.1 galima naudotis šiomis bitų manipuliavimo funkcijomis. Jie veikia konvertuodami dvigubo tikslumo slankiojo kablelio vertes į nesusiję ilgi sveikieji skaičiai, atliekant operaciją ir po to paverčiant rezultatą atgal į slankiojo kablelio tašką. Funkcijos yra:

ir ( v1 , v2 )

Grąžinkite bitwise AND reikšmes, pateiktas v1 ir v2 .

kompl ( val )

Grąžinti valitacijos bitwise papildymą.

lshift ( val , count )

Grąžinkite val reikšmę, paslinktą paliekant skaičiavimo bitais.

arba ( v1 , v2 )

Grąžinkite bitwise arba reikšmes, pateiktas v1 ir v2 .

rshift ( val , count )

Grąžinkite val vertę, paslinktą tiesiai iš skaičiaus bitų.

xor ( v1 , v2 )

Grąžinkite v1 ir v2 pateiktų reikšmių bituminį XOR.

Internacionalizacijos funkcijos

Nuo gawk versijos 3.1, iš jūsų AWK programos gali būti naudojamos šios funkcijos verčiant stygas vykdymo metu. Išsamios informacijos ieškokite GAWK: efektyvus AWK programavimas .

bindtextdomain ( katalogas [ , domenas ] )

Nurodo katalogą, kuriame gawk ieško .mo failų, jei jie nebus arba negali būti dedami į "standartines" vietas (pvz., Bandymo metu). Tai grąžina katalogą, kuriame "bound" yra domenas . "

Numatytasis domenas yra TEXTDOMAIN vertė. Jei kataloge yra nulinė eilutė ( "" ), tada bindtextdomain () grąžina dabartinį domeno privalomąjį.

dcgettext ( eilutė [ , domenas [ , kategorija ]] )

Grąžina teksto domeno domeno eilutės vertimą lokalės kategorijos kategorijai . Numatytoji domeno reikšmė yra dabartinė TEXTDOMAIN vertė. Numatytoji kategorijos reikšmė yra "LC_MESSAGES" .

Jei pateikiate kategorijos vertę, tai turi būti eilutė, lygi vienai iš žinomų lokalių kategorijų, apibūdintų GAWK: Efektyvus AWK programavimas . Taip pat turite pateikti teksto domeną. Jei norite naudoti dabartinį domeną, naudokite TEXTDOMAIN .

dcngettext ( string1 , string2 , numeris [ , domenas [ , kategorija ]] )

Grąžina daugiskaitos formą, naudojamą eilučių 1 ir string2 vertimo numeriui teksto domeno domenuose lokalės kategorijos kategorijai . Numatytoji domeno reikšmė yra dabartinė TEXTDOMAIN vertė. Numatytoji kategorijos reikšmė yra "LC_MESSAGES" .

Jei pateikiate kategorijos vertę, tai turi būti eilutė, lygi vienai iš žinomų lokalių kategorijų, apibūdintų GAWK: Efektyvus AWK programavimas . Taip pat turite pateikti teksto domeną. Jei norite naudoti dabartinį domeną, naudokite TEXTDOMAIN .

USER-DEFINED FUNKCIJOS

AWK funkcijos apibrėžiamos taip:

funkcijos pavadinimas ( parametrų sąrašas ) { statements }

Funkcijos atliekamos, kai jie yra vadinami iš vienos išraiškų, esančių šablonuose ar veiksmuose. Funkcinio skambučio metu pateikti faktiniai parametrai naudojami parodyti formalius parametrus, deklaruotus funkcijoje. Masyvai yra perduoti pagal nuorodą, kiti kintamieji yra perduoti pagal vertę.

Kadangi funkcijos iš pradžių nebuvo AWK kalbos dalis, vietinių kintamųjų nuostata yra gana nepatogi: jie parametrų sąraše yra deklaruojami kaip papildomi parametrai. Konventas atskiria vietinius kintamuosius nuo realių parametrų papildomomis tarpinėmis parametrų sąraše. Pavyzdžiui:

funkcija f (p, q, a, b) # a ir b yra vietiniai {...} / abc / (...; f (1, 2); ...}

Skaičius į kairę skliaustuose funkcijos skambučio metu yra reikalaujama nedelsiant sekti funkcijos pavadinimu, be tarpinio balto tarpo. Tai yra išvengti sintaksės dviprasmiškumo su konkatenacijos operatoriumi. Šis apribojimas netaikomas aukščiau išdėstytoms integruotoms funkcijoms.

Funkcijos gali skambinti viena kitai ir gali būti rekursyvios. Funkcijos parametrai, naudojami kaip vietiniai kintamieji, yra inicializuojami į nulinę eilutę ir skaičių nulis, kai funkcija yra paskambinama.

Naudokite return expr, kad grąžintumėte vertę iš funkcijos. Grąžinamoji vertė yra neapibrėžta, jei nėra reikšmės, arba jei funkcija grąžinama baigus "" nusileisti.

Jei --lint buvo suteikta, gawk perspėja apie skambučius į neapibrėžtas funkcijas analizuojant, o ne paleidimo metu. Skaičiavimas nenustatytos funkcijos vykdymo metu yra netikėta klaida.

Vietoj funkcijos gali būti naudojamas žodis func .

DYNAMIŠKAI NAUDOJANT NAUJĄ FUNKCIJĄ

Nuo gawk versijos 3.1 galite dinamiškai pridėti naujas integruotas funkcijas į veikiančiam gawk interpretuotojui. Išsami informacija yra už šio vadovo puslapio taikymo srities ribų; Žiūrėkite GAWK: Efektyvus AWK programavimas detalėms.

pratęsimas ( objektas , funkcija )

Dinamiškai susieti objekto failą, pavadintą objektu , ir paleisti funkciją toje objekte, kad atliktų inicializavimą. Tai turėtų būti pateikta kaip eilutės. Grąžina funkciją grąžintą vertę.

Ši funkcija pateikiama ir dokumentuojama GAWK: Efektyvus AWK programavimas , tačiau viskas apie šią funkciją gali keistis kitame leidinyje. Mes stipriai rekomenduojame nenaudoti šios funkcijos nieko, ko nenorite persvarstyti.

SIGNALAI

Pgawk priima du signalus. SIGUSR1 sukelia tai profilio failui, kuris yra arba awkprof.out , ar bet kokio failo pavadinimu su " -profile" parinktimi, atvaizduoti profilį ir funkcijų skambučio kopiją . Tada jis tęsiasi. SIGHUP sukelia tai nuskaityti profilį ir funkcijos skambučių kamino, o tada išeiti.

PAVYZDŽIAI

Spausdinti ir rūšiuoti visų naudotojų prisijungimo vardus: BEGIN {FS = ":"} {print $ 1 | "rūšiuoti"} skaičiuoti eilutes į failą: {nlines ++} END (spausdinti nlines) Iš anksto užpildyti kiekvieną eilutę pagal jo numerį faile: {spausdinti FNR, $ 0} sujungti ir eilutės numerį (variantą tema): { $ 0}

Internalizacija

Styginių konstantos yra simbolių sekos, įterptos į dvigubas kabutes. Ne anglomis kalbančiose aplinkose AWK programoje galima pažymėti eilutes, kurios reikalauja vertimo į gimtąją natūralią kalbą. Tokios eilutės yra pažymėtos AWK programoje su pagrindine pabraukimu (`` _ ''). Pavyzdžiui,

gawk 'BEGIN {print' hello, world '}'

visada spausdina sveika, pasaulis . Bet,

gawk 'BEGIN {print _ "hello, world"}'

gali spausdinti bonjour, monde Prancūzijoje.

Yra keletas etapų, skirtų lokalizuotai AWK programai kurti ir valdyti.

1.

Pridėkite BEGIN veiksmą, kad priskirtumėte TEXTDOMAIN kintamojo reikšmę, kad nustatytumėte teksto domeną su jūsų programa susietu pavadinimu.


BEGIN {TEXTDOMAIN = "myprog"}

Tai leidžia gawk rasti .mo failą, susietą su jūsų programa. Be šio žingsnio, gawk naudoja pranešimų teksto domeną, kuriame greičiausiai nėra jūsų programos vertimų.

2.

Pažymėkite visas eilutes, kurios turėtų būti verčiamos su pagrindiniais pabraukimais.

3.

Jei reikia, savo programoje naudokite atitinkamas dcgettext () ir / arba bindtextdomain () funkcijas.

4.

Paleisk gawk -gen-po -f myprog.awk> myprog.po, kad sukurtumėte .po failą savo programai.

5.

Pateikite tinkamus vertimus, kurkite ir įdiekite atitinkamą .mo failą.

Internacionalizavimo funkcijos yra išsamiai aprašytos GAWK: efektyvus AWK programavimas .

Posix suderinamumas

Pagrindinis " gawk" tikslas yra suderinamumas su POSIX standartu, taip pat su naujausia UNIX awk versija. Šiuo tikslu " gawk" turi šias naudotojo matomas funkcijas, kurios nėra aprašytos AWK knygoje, bet yra " awk" " Bell Laboratories" versijos dalis ir yra POSIX standarte.

Knyga rodo, kad komandinės eilutės kintamojo priskyrimas įvyksta, kai awk kitaip atidarys argumentą kaip failą, kuris bus įvykdytas po BEGIN bloko. Tačiau ankstesniuose įdiegimuose, kai tokia priskyrimas pasirodė prieš bet kokius failų pavadinimus, priskyrimas įvyko prieš paleidžiant BEGIN bloką. Paraiškos priklausė nuo šios "" funkcijos. "Kai" awk " pakeista, kad atitiktų jos dokumentus, buvo pridėta -v galimybė priskirti kintamuosius prieš programos vykdymą, kad būtų galima pritaikyti programas, kurios priklausė nuo senojo elgesio. (Šią funkciją susitarė ir Bell Laboratories, ir GNU kūrėjai.)

" -W" galimybė konkrečioms savybėms įgyvendinti yra iš POSIX standarto.

Apdorojant argumentus, gawk naudoja specialią parinktį `- - ', norint pranešti apie argumentų pabaigą. Suderinamumo režimu jis įspėja, bet kitaip ignoruoja neapibrėžtas parinktis. Įprastoje veikloje tokie argumentai perduodami AWK programai, kad ji būtų apdorota.

AWK knyga nenurodo grįžimo vertės srand () . Standartas POSIX grąžina naudojamą sėklą, kad būtų galima stebėti atsitiktinių skaičių seką. Todėl srand () gawk taip pat grąžina savo dabartinę sėklą.

Kitos naujos funkcijos yra: galimybė naudoti kelis variantus (iš MKS awk ); ENVIRON masyvas; \ a ir \ v pabėgėlių sekos (padaryta iš pradžių gawk ir grįžta į Bell Laboratories versiją); tolower () ir toupper () integruotas funkcijas (iš "Bell Laboratories" versijos); ir ANSI C perskaičiavimo specifikacijas printf (padaryta pirmiausia "Bell Laboratories" versijoje).

Istorinės savybės

Yra du istoriniai AWK įdiegimai, kuriuos " gawk" palaiko. Pirma, įvesta funkcija length () gali būti vadinama ne tik be jokių argumentų, bet net be skliaustų! Taigi,

a = ilgis # Holy Algol 60, Batman!

yra tas pats kaip ir

a = ilgis ()
a = ilgis ($ 0)

Ši funkcija yra pažymėta kaip "nepasitvirtinusi" POSIX standarte, o gawk įspėjama apie jo naudojimą, jei komandinėje eilutėje yra nurodytas --lint .

Kita funkcija yra arba tęsimo, arba pertraukos išrašų naudojimas ne kūno metu , , ar ciklą. Tradiciniai AWK diegimai tokį naudojimą laikė lygiaverčiais kitam teiginiui. Gawk palaiko šį naudojimą, jei --traditional nurodytas.

GNU plėtiniai

"Gawk" turi daugybę POSIX awk plėtinių. Jie aprašyti šiame skyriuje. Visi čia apibūdinti plėtiniai gali būti išjungiami naudojant gawk su įprasta parinktimi.

Šios gawk savybės nėra prieinamos POSIX awk .

*

Failų, pavadintų naudojant -f parinktį, nėra ieškoma kelio. Todėl AWKPATH aplinkos kintamasis nėra ypatingas.

*

\ X evakuacijos seka. (Neįgaliesiems su --posix .)

*

Fflush () funkcija. (Neįgaliesiems su --posix .)

*

Gebėjimas tęsti linijas po ? ir :. (Neįgaliesiems su --posix .)

*

Aštuonios ir šešioliktainės konstantos AWK programose.

*

ARGIND , BINMODE , ERRNO , LINT , RT ir TEXTDOMAIN kintamieji nėra ypatingi.

*

Kintamasis IGNORECASE ir jo šalutinis poveikis nėra.

*

FIELDWIDTHS kintamojo ir fiksuoto pločio lauko padalijimas.

*

PROCINFO masyvas negalimas.

*

RS kaip reguliaraus išraiško naudojimas.

*

Specialūs failų pavadinimai, skirti I / O peradresavimui, nėra pripažįstami.

*

| & Operatoriui sukurti bendrų procesų.

*

Gebėjimas atskirti atskirus simbolius naudojant NULL eilutę kaip FS vertę ir kaip trečiąjį argumentą split () .

*

Neprivalomas antrasis argumentas, skirtas uždaryti () funkciją.

*

Neprivalomas trečias argumentas dėl atitikimo () funkcijos.

*

Gebėjimas naudoti pozicijos specifikacijas su printf ir sprintf () .

*

Išbraukimo masyvo naudojimas, norint ištrinti visą masyvo turinį.

*

Nextfile naudojimas atsisakyti dabartinio įvesties failo apdorojimo.

*

Ir () , asort () , bindtextdomain () , compl () , dcgettext () , gensub () , lshift () , mktime () , arba () , rshift () , strftime () , strtonum () , systime () ir xor () funkcijos.

*

Localizuojamos eilutės.

*

Naujų integruotų funkcijų įvedimas dinamiškai naudojant funkciją extension () .

AWK knyga nenurodo uždaro () funkcijos grąžinimo vertės. Gawk 's close () grąžina vertę iš fclose (3) arba pclose (3), atitinkamai uždarius išvesties failą arba vamzdį. Uždarius įvesties vamzdį, grįžta proceso išeigos būsena. Grąžinamoji vertė yra -1, jei nurodytas failas, vamzdis ar bendras procesas nebuvo atidaryti peradresavimui.

Kai gawk naudojamas su tradicine parinktimi, jei fs argumentas -F parinktis yra `` t '', tada FS yra nustatytas skirtuko simboliu. Atkreipkite dėmesį, kad tipinis gawk -F \ t ... tiesiog sukelia apvalkalo citavimą `` t, '' ir neleidžia `` \ t '' į -F parinktį. Kadangi tai yra gana bjaurus ypatingas atvejis, tai nėra numatytas elgesys. Toks elgesys taip pat neįvyksta, jei nurodytas " --posix ". Norint gauti skirtukų simbolį kaip laukų skirtuką, geriausia naudoti vienkartines kabučių: gawk-F '\ t "....

Žiūrėkite kitas komandas : wait , lp , complete , execv , getfacl , ioctl , uniq , rmmod , pvcreate , rsh , unix2dos , cal , fs , cd , iwpriv , swapon , autofs , talk , motd , free , lpr , execl , fdisk , at , kas , iwconfig , ifconfig , vgdisplay , atviras , lsmod , ntohs , mailq , kill , wtmp