Tgħallem il-Kmand Linux - gawk

Isem

Gawk - mudell tal-iskannjar u l-ipproċessar tal-lingwa

Sinteżi

Gawk [għażliet ta 'stil POSIX jew GNU] -f fajl ta' programm [ - ] fajl ...
Gawk [għażliet ta 'stil POSIX jew GNU] [ - ] fajl ta' programm-test ...

pgawk [għażliet ta 'stil POSIX jew GNU] -f fajl tal-programm [ - ] fajl ...
pgawk [għażliet ta 'stil POSIX jew GNU] [ - ] fajl ta' programm-test ...

Deskrizzjoni

Gawk hija l-implimentazzjoni tal-proġett GNU tal-lingwa ta 'programmar AWK. Dan jikkonforma mad-definizzjoni tal-lingwa fl-Istandard tal-Lingwa u l-Utilitajiet tal-POSIX 1003.2 tal-Kmand. Din il-verżjoni mbagħad hija bbażata fuq id-deskrizzjoni fil- L-Ilsien tal-Ipprogrammar AWK , minn Aho, Kernighan u Weinberger, bil-karatteristiċi addizzjonali misjuba fil-verżjoni Sistema V Rilaxx 4 ta 'UNIX awk . Gawk jipprovdi wkoll estensjonijiet tal-Bell Laboratories awk aktar riċenti, u għadd ta 'estensjonijiet speċifiċi għall-GNU.

Pgawk hija l-verżjoni tal-profil tal- gawk . Hija identika f'kull mod li tagħmel, ħlief li l-programmi jimxu aktar bil-mod, u awtomatikament tipproduċi profil ta 'eżekuzzjoni fil-fajl awkprof.out meta jsir. Ara l-għażla --profile , hawn taħt.

Il-linja tal-kmand tikkonsisti f'għażliet biex tivverifika lilha nnifisha, it-test tal-programm AWK (jekk mhux fornut permezz tal-għażliet -f jew - fajls ), u valuri li għandhom ikunu disponibbli fil-varjabbli AWK ARGC u predefiniti minn ARGV .

Format tal-Għażla

L- għażliet ta ' Gawk jistgħu jkunu għażliet ta' ittra waħda POSIX tradizzjonali, jew għażliet twal ta 'stil GNU. L-għażliet POSIX jibdew b'` `- '' waħda, filwaqt li għażliet twal jibdew b '` `-' '. L-għażliet twal huma pprovduti kemm għall-karatteristiċi speċifiċi tal-GNU kif ukoll għall-karatteristiċi mandati mill-POSIX.

Wara l-istandard POSIX, gawk- għażliet speċifiċi huma fornuti permezz ta 'argumenti għall-għażla -W . Jistgħu jiġu pprovduti għażliet Multiple- W. Kull għażla -W għandha għażla twila korrispondenti, kif dettaljat hawn taħt. L-argumenti għall-għażliet fit-tul huma jew magħquda bl-għażla b'sinjal, mingħajr spazji li jintervjenu, jew jistgħu jiġu pprovduti fl-argument tal-linja tal-kmand li jmiss. Għażliet twal jistgħu jitqassru, sakemm l-abbrevjazzjoni tibqa 'unika.

Għażliet

Gawk jaċċetta l-għażliet li ġejjin, elenkati alfabetikament.

-F fs

--field-separator fs Uża fs għas-separatur tal-field tad-dħul (il-valur tal-varjabbli predefinit FS ).

-v var = val

--assign var = val Assigna l -valur val għall-varjabbli var , qabel tibda l-eżekuzzjoni tal-programm. Dawn il-valuri varjabbli huma disponibbli għall-blokk BEGIN ta 'programm AWK.

-f fajl tal-programm

--fil fajl tal-programm Aqra s-sors tal-programm AWK mill-fajl tal- programm tal-fajl , minflok mill-ewwel argument tal-linja tal-kmand. Jistgħu jintużaw għażliet multipli- f (jew - fajl ).

-mf NNN

-mr NNN Issettja diversi limiti tal-memorja għall-valur NNN . Il-marka f tistabbilixxi n-numru massimu ta 'oqsma, u l-bandiera r tiffissa d-daqs massimu tar-rekord. Dawn iż-żewġ bnadar u l-għażla -m huma mill-verżjoni tar-riċerka Bell Laboratories ta ' UNIX awk . Huma injorati minn gawk , peress li gawk m'għandha l-ebda limiti definiti minn qabel.

-Komp kompatibbli

-W tradizzjonali

--compat

--Tradizzjoni tradizzjonali fil-mod ta ' kompatibilità . Fil-mod ta 'kompatibilità, gawk iġib ruħu identiku għal UNIX awk ; L-ebda waħda mill-estensjonijiet speċifiċi għall-GNU mhija rikonoxxuta. L-użu ta ' --traditional huwa preferut fuq il-forom l-oħra ta' din l-għażla. Ara l- ESTENSJONIJIET tal-GNU , hawn taħt, għal aktar informazzjoni.

-W copyleft

-W copyright

--copyleft

--rightright Stampa l-verżjoni qasira tal-messaġġ ta 'informazzjoni GNU dwar id-drittijiet tal-awtur fuq il-produzzjoni standard u l-ħruġ b'suċċess.

-W dump-variables [ = fajl ]

--dump-variables [ = fajl ] Stampa lista magħżula ta 'varjabbli globali, it-tipi u l-valuri finali għall- fajl . Jekk l-ebda fajl ma jkun ipprovdut, gawk juża fajl imsejjaħ awkvars.out fid-direttorju kurrenti.

Li jkollok lista tal-varjabbli globali kollha huwa mod tajjeb biex tfittex żbalji tipografiċi fil-programmi tiegħek. Int tkun tista 'tuża din l-għażla jekk ikollok programm kbir b'ħafna funzjonijiet, u trid tkun ċert li l-funzjonijiet tiegħek ma jużawx b'mod involontarju fatturi varjabbli globali li inti maħsuba biex tkun lokali. (Dan huwa żball partikolarment faċli li tagħmel ma 'ismijiet ta' varjabbli sempliċi bħal i , j , eċċ.)

-W għajnuna

-Użu W

--help

- użu Stampa ta 'sommarju relattivament qasir ta' l-għażliet disponibbli fuq il-produzzjoni standard. (Skond l- Istandards tal-Kodiċi tal-GNU , dawn l-għażliet jikkawżaw ħruġ immedjat u ta 'suċċess.)

-W lint [ = fatali ]

--lint [ = fatali ] Ipprovdi twissijiet dwar kostruzzjonijiet li huma dubjużi jew mhux portabbli għal implimentazzjonijiet oħra ta 'l-AZL. Permezz ta 'argument fakultattiv ta ' twissijiet fatali , il-lint isir żbalji fatali. Dan jista 'jkun drastiku, iżda l-użu tiegħu ċertament jinkoraġġixxi l-iżvilupp ta' programmi AWK aktar nodfa.

-Xarbija qadima

- ħafif Ipprovdi twissijiet dwar kostruzzjonijiet li mhumiex portabbli għall-verżjoni oriġinali ta 'Unix awk .

-W gen-po

--gen-po Scan u parse il-programm AWK, u jiġġenera fajl format .po. GNU fuq output standard b'inċidiet għall-kordi kollha li jistgħu jinstabu fil-programm. Il-programm innifsu mhuwiex eżegwit. Ara d-distribuzzjoni gettext GNU għal aktar informazzjoni fuq fajls .po .

-W data mhux deċimali

- data mhux deċimali tirrikonoxxi valuri octal u hexadecimali fid-data ta 'l-input. Uża din l-għażla b'attenzjoni kbira!

-W posix

--posix Dan imur fuq il-mod ta ' kompatibilità , bir-restrizzjonijiet addizzjonali li ġejjin:

*

Is- sekwenzi tal-ħarba mhumiex rikonoxxuti.

*

L-ispazju u t-tab biss jaġixxu bħala separaturi tal-kamp meta l- FS huwa stabbilit għal spazju wieħed, newline ma jagħmilx hekk.

*

Inti ma tistax tkompli linji wara ? u :.

*

Is-sinonimu func għall- funzjoni keyword mhix rikonoxxuta.

*

L-operaturi ** u ** = ma jistgħux jintużaw minflok ^ u ^ = .

*

Il-funzjoni fflush () mhijiex disponibbli.

-W profil [ = prof_file ]

--profile [ = prof_file ] Ibgħat id-data tal-profil lil prof_file . In-nuqqas huwa awkprof.out . Meta run with gawk , il-profil huwa biss '' pretty stampata '' verżjoni tal-programm. Meta tkun imwettqa b'pgawk , il-profil ikun fih għadd ta 'eżekuzzjoni ta' kull dikjarazzjoni fil-programm fil-marġni tax-xellug u l-għadd tal-sejħiet tal-funzjoni għal kull funzjoni definita mill-utent.

-W intervall mill-ġdid

--re-interval Ippermetti l-użu ta ' espressjonijiet ta' intervall f'formazzjoni regolari ta 'l-espressjoni (ara l -Espressjonijiet Regolari , hawn taħt). L-espressjonijiet ta 'l-intervalli ma kinux tradizzjonalment disponibbli fil-lingwa AWK. L-istandard POSIX żiedhom , biex jagħmlu awk u egrep konsistenti ma 'xulxin. Madankollu, l-użu tagħhom x'aktarx li jkisser programmi AWK qodma, għalhekk gawk jipprovdihom biss jekk huma mitluba b'din l-għażla, jew meta --posix huwa speċifikat.

-W-source program-text

--source -text-text Uża t-test tal- programm bħala l-kodiċi tas-sors tal-programm AWK. Din l-għażla tippermetti l-intermixing faċli tal-funzjonijiet tal-librerija (użata permezz tal-għażliet -f u - fajls ) bil-kodiċi sors imdaħħal fuq il-linja tal-kmand. Hija maħsuba primarjament għal programmi medji għal AWK kbar użati f'skripts qoxra.

-W verżjoni

--version Stampa l-informazzjoni tal-verżjoni għal din il-kopja partikolari ta ' gawk fuq il-produzzjoni standard. Dan huwa utli prinċipalment biex wieħed ikun jaf jekk il-kopja kurrenti ta ' gawk fis-sistema tiegħek hijiex aġġornata fir-rigward ta' kwalunkwe Fondazzjoni ta 'Software Ħieles li qed tqassam. Dan huwa wkoll utli meta jirrapporta bugs. (Skond l- Istandards tal-Kodiċi tal-GNU , dawn l-għażliet jikkawżaw ħruġ immedjat u ta 'suċċess.)

- Sinjal it-tmiem tal-għażliet. Dan huwa utli biex jippermetti argumenti ulterjuri għall-programm AWK innifsu biex jibda '`-' '. Dan huwa prinċipalment għall-konsistenza mal-konvenzjoni tal-analiżi tal-argument użata mill-biċċa l-kbira tal-programmi POSIX oħra.

Fil-modalità ta 'kompatibilità, kwalunkwe għażla oħra tkun immarkata bħala invalida, iżda inkella tiġi injorata. F'ħidma normali, sakemm it-test tal-programm ikun ġie fornut, għażliet mhux magħrufa jiġu mgħoddija lill-programm AWK fil-firxa ARGV għall-ipproċessar. Dan huwa partikolarment utli għat-tmexxija ta 'programmi AWK permezz tal-mekkaniżmu ta' interpretu eżekutibbli `` #! ''.

L-EŻEKUZZJONI TAL-PROGRAMM AWK

Programm AWK jikkonsisti f'sekwenza ta 'dikjarazzjonijiet ta' azzjoni ta 'mudell u definizzjonijiet tal-funzjonijiet mhux obbligatorji.

mudell { dikjarazzjonijiet ta 'azzjoni }

isem tal- funzjoni ( lista ta 'parametri ) { dikjarazzjonijiet }

Gawk l- ewwel jaqra s-sors tal- programm mill-fajl (s) tal-programm jekk speċifikat, minn argumenti għal --source , jew mill-ewwel argument mhux tal-għażla fuq il-linja tal-kmand. L-għażliet -f u - l-alternattivi jistgħu jintużaw ħafna drabi fuq il-linja tal-kmand. Gawk jaqra t-test tal-programm daqslikieku t-testi kollha tal-fajls tal-programm u s-sorsi tal-linja tal-kmand kienu ġew ikkonċentrati flimkien. Dan huwa utli għall-bini ta 'libreriji tal-funzjonijiet AWK, mingħajr ma jkollu għalfejn jinkludihom f'kull programm AWK ġdid li jużahom. Jipprovdi wkoll il-ħila li jgħaqqad il-funzjonijiet tal-librerija mal-programmi tal-linja tal-kmand

Il-varjabbli ta 'l-ambjent AWKPATH tispeċifika rotta ta' tfittxija biex tintuża meta jinstabu sorsi ta 'fajls bl-għażla -f . Jekk din il-varjabbli ma teżistix, il-passaġġ default huwa ".: / Usr / local / share / awk" . (Id-direttorju attwali jista 'jvarja, jiddependi fuq kif gawk kien mibni u installat.) Jekk isem tal-fajl mogħti lill-opzjoni -f fih karattru `` /' ', ma titwettaq ebda tfittxija ta' passaġġ.

Gawk tesegwixxi l-programmi AWK fl-ordni li ġejja. L-ewwel, l-inkarigi varjabbli kollha speċifikati permezz tal- v- opzjoni huma mwettqa. Sussegwentement, gawk jiġbor il-programm f'forma interna. Imbagħad, gawk tesegwixxi l-kodiċi fil-blokk (i) BEGIN (jekk ikun hemm), u mbagħad tipproċedi biex taqra kull fajl imsemmi fil-firxa ARGV . Jekk ma hemm l-ebda fajl imsemmi fuq il-linja tal-kmand, gawk jaqra l-input standard.

Jekk isem tal-fajl fuq il-linja tal-kmand għandu l-forma var = val huwa trattat bħala assenjazzjoni varjabbli. Il- var var varjabbli se tkun assenjata l-valur val . (Dan jiġri wara li kwalunkwe blokk (ijiet) BEGIN ikunu ġew imwettqa.) L-assenjazzjoni tal-varjabbli tal-linja tal-kmand hija l-aktar utli biex tassenja b'mod dinamiku l-użi varjabbli AWK biex jikkontrollaw kif id-dħul jinkiser f'oqsma u reġistri. Huwa wkoll utli għall-kontroll tal-istat jekk ikun hemm bżonn ta 'għadd ta' passes fuq fajl tad-dejta wieħed.

Jekk il-valur ta 'element partikolari ta' ARGV huwa vojt ( "" ), gawk tarmi fuqha.

Għal kull rekord fl-input, testijiet tal- gawk biex tara jekk taqbilx ma 'kwalunkwe mudell fil-programm AWK. Għal kull mudell li r-rekord taqbel, l- azzjoni assoċjata hija esegwita. Il-mudelli huma ttestjati fl-ordni li jseħħu fil-programm.

Finalment, wara li l-input kollu jkun eżawrit, gawk jesegwixxi l-kodiċi fil-blokk (s) END (jekk ikun hemm).

Varjabbli, Rekords u Oqsma

Il-varjabbli tal-AWK huma dinamiċi; dawn jidħlu fis-seħħ meta jintużaw l-ewwel darba. Il-valuri tagħhom huma jew numri ta 'punti f'wiċċ l-ilma jew kordi, jew it-tnejn, jiddependi fuq kif jintużaw. AWK għandu wkoll arranġamenti ta 'dimensjoni waħda; Arranġamenti b'diversi dimensjonijiet jistgħu jiġu simulati. Diversi varjabbli definiti minn qabel huma stabbiliti bħala program runs; dawn se jiġu deskritti kif meħtieġ u mqassra hawn taħt.

Rekords

Normalment, ir-rekords huma separati b'karattri ġodda. Tista 'tikkontrolla kif ir-rekords huma separati billi tassenja valuri lill-varjabbli RS integrata. Jekk RS huwa karattru wieħed, dak il-karattru jissepara r-rekords. Inkella, RS hija espressjoni regolari. It-test fl-input li jaqbel ma 'din l-espressjoni regolari jifred ir-rekord. Madankollu, fil-mod ta 'kompatibilità, l-ewwel karattru tal-valur ta' l-istring tiegħu biss huwa użat għas-separazzjoni tar-rekords. Jekk RS huwa ssettjat fuq is-sekwenza nulla, ir-rekords huma separati minn linji vojta. Meta RS huwa ssettjat fuq is-sekwenza nulla, il-karattru tal-linja l-ġdida dejjem jaġixxi bħala separatur tal-qasam, flimkien ma 'kwalunkwe valur FS jista' jkollu.

Oqsma

Hekk kif jinqara kull rekord tal-input, gawk jaqsam ir-rekord f'oqsma , billi juża l-valur tal-varjabbli FS bħala s-separatur tal-qasam. Jekk FS huwa karattru wieħed, l-oqsma huma separati minn dak il-karattru. Jekk FS hija s-sekwenza nulla, kull karattru individwali jsir qasam separat. Inkella, FS hija mistennija li tkun espressjoni regolari sħiħa. Fil-każ speċjali li l- FS huwa spazju wieħed, l-oqsma huma separati minn runs ta 'spazji u / jew tabs u / jew linji ġodda. (Imma ara d-diskussjoni ta ' --posix , hawn taħt). NOTA: Il-valur ta ' IGNORECASE (ara hawn taħt) jaffettwa wkoll kif l-oqsma huma maqsuma meta FS hija espressjoni regolari, u kif ir-rekords huma separati meta RS hija espressjoni regolari.

Jekk il-varjabbli FIELDWIDTHS huwa stabbilit għal spazju separat ta 'numri, kull qasam huwa mistenni li jkollu wisa' fiss, u gawk jaqsam ir-rekord billi juża l-wisa 'speċifikati. Il-valur ta ' FS huwa injorat. L-għoti ta 'valur ġdid lil FS jeqred l-użu ta' FIELDWIDTHS , u jerġa 'jġib l-imġieba inadegwata .

Kull qasam fir-rekord tad-dħul jista 'jkun referenzjat mill-pożizzjoni tiegħu, $ 1 , $ 2 , eċċ. $ 0 huwa r-rekord sħiħ. L-oqsma m'għandhomx għalfejn jiġu referenzjati mill-kostanti:

n = 5
istampar $ n

timmarka l-ħames qasam fir-rekord tad-dħul.

Il-varjabbli NF huwa ssettjat għan-numru totali ta 'oqsma fir-rekord tad-dħul.

Ir-referenzi għal oqsma ineżistenti (jiġifieri l-oqsma wara $ NF ) jipproduċu n-null-string. Madankollu, l-assenjazzjoni għal qasam ineżistenti (eż., $ (NF + 2) = 5 ) iżżid il-valur ta ' NF , toħloq kwalunkwe qasam li jintervjeni bin-null string bħala l-valur tagħhom, u tikkawża li l-valur ta' $ 0 jerġa jiġi kkalkulat, l-oqsma jiġu sseparati bil-valur ta ' OFS . Ir-referenzi għal oqsma numerati negattivi jikkawżaw żball fatali. Id-dekrement tal- NF jikkawża li l-valuri tal-oqsma li jintilfu l-valur il-ġdid jintilfu, u l-valur ta ' $ 0 jerġa jiġi kkalkulat, bl-oqsma separati bil-valur ta' OFS .

L-għoti ta 'valur lil qasam eżistenti jikkawża li r-rekord kollu jerġa' jinbena meta ssir referenza għal $ 0 . Bl-istess mod, l-għoti ta 'valur għal $ 0 jikkawża li r-rekord jiġi msaħħaħ, u joħloq valuri ġodda għall-oqsma.

Variables Mibnija

Il-varjabbli integrati ta ' Gawk huma:

ARGC

In-numru ta 'argumenti tal-linja tal-kmand (ma tinkludix għażliet għal gawk , jew is-sors tal-programm).

ARGIND

L-indiċi fl- ARGV tal-fajl kurrenti li qed jiġi pproċessat.

ARGV

Array ta 'argumenti tal-linja tal-kmand. Il-firxa hija indiċjata minn 0 għal ARGC - 1. Tibdil dinamiku tal-kontenut ta ' ARGV jista' jikkontrolla l-fajls użati għad-data.

BINMODE

F'sistemi mhux POSIX, tispeċifika l-użu tal-modalità '' binarju '' għal kull fajl I / O. Valuri numeriċi ta '1, 2, jew 3, jispeċifikaw li l-fajls tad-dħul, il-fajls tal-output, jew il-fajls kollha, rispettivament, għandhom jużaw I / O binarji. String valuri ta ' "r" , jew "w" jispeċifikaw li fajls ta' input, jew fajls ta 'produzzjoni, rispettivament, għandhom jużaw I / O binarji. Il-valuri tal-istring ta ' "rw" jew "wr" jispeċifikaw li l-fajls kollha għandhom jużaw I / O binarja. Kwalunkwe valur ta 'sekwenza oħra huwa ttrattat bħala "rw" , imma jiġġenera messaġġ ta' twissija.

CONVFMT

Il-format ta 'konverżjoni għan-numri, "% .6g" , awtomatikament.

ENVIRON

Array li fih il-valuri ta 'l-ambjent kurrenti. Il-firxa hija indiċjata mill-varjabbli ambjentali, kull element huwa l-valur ta 'dik il-varjabbli (eż. ENVIRON ["HOME"] jista' jkun / dar / arnold ). Il-bdil ta 'din il-firxa ma jaffettwax l-ambjent li jidhru minn programmi li jnixxfu permezz ta' direzzjoni mill-ġdid jew il-funzjoni tas - sistema () .

ERRNO

Jekk isseħħ żball tas-sistema jew billi tagħmel direzzjoni mill-ġdid għal getline , waqt li tinqara għal getline , jew għal mill - qrib () , allura ERRNO jkun fih sekwenza li tiddeskrivi l-iżball. Il-valur huwa soġġett għal traduzzjoni f'postijiet mhux Ingliżi.

WIDRIET TAL-FIRE

Lista separata ta 'l-ispazji fuq l-ispazju abjad. Meta ssettja , jagħmel parses tal-input f'oqsma ta 'wisa' fiss, minflok juża l-valur tal-varjabbli FS bħala s-separatur tal-qasam.

ISEM TAL-FAJL

L-isem tal-fajl tad-dħul kurrenti. Jekk l-ebda fajl ma jkun speċifikat fuq il-linja tal-kmand, il-valur ta ' FILENAME huwa `` -' '. Madankollu, FILENAME mhux definit ġewwa l-blokk BEGIN (sakemm ma jiġix stabbilit minn getline ).

FNR

In-numru tar-rekord tad-dħul fil-fajl ta 'input kurrenti.

FS

Is-separatur tal-field tad-dħul, spazju awtomatiku. Ara l- Oqsma , hawn fuq.

IGNORECASE

Jikkontrolla s-sensittività tal-każ ta 'l-espressjonijiet regolari kollha u l-operazzjonijiet ta' spag. Jekk IGNORECASE għandu valur mhux żero, imbagħad paraguni ta 'sekwenza u tqabbil tal-mudell f'regoli, qsim tal-kamp ma' FS , rekord li jissepara ma ' RS , espressjoni regolari li taqbel ma' ~ u ! ~ , U l- indent gensub () , gsub () , jaqblu () , maqsuma () , u sotto () funzjonijiet integrati kollha jinjoraw il-każ meta jagħmlu operazzjonijiet ta 'espressjoni regolari. NOTA: Is- sottoskrizzjoni tal- kaxxa mhix affettwata, u lanqas mhija l-funzjoni asort () .

Għalhekk, jekk IGNORECASE ma jkunx ugwali għal żero, / aB / taqbel mal-kordi kollha "ab" , "aB" , "Ab" , u "AB" . Bħal fil-varjabbli kollha tal-AWK, il-valur inizjali ta ' IGNORECASE huwa żero, għalhekk l-espressjonijiet regolari u l-operazzjonijiet kollha ta' spag normalment huma sensittivi għall-każijiet. Taħt Unix, is-sett tal-karattri sħiħ ISO 8859-1 Latin-1 jintuża meta tinjora l-każ.

LINT

Jipprovdi kontroll dinamiku tal-għażla ta ' lint minn programm AWK. Meta jkun veru, gawk juri twissijiet ta 'lint. Meta falza, ma tagħmilx hekk. Meta jiġi assenjat il-valur ta 'sekwenza "fatali" , it-twissijiet tal-lint isiru żbalji fatali, eżattament bħal - lint = fatali . Kwalunkwe valur veru ieħor biss juri twissijiet.

NF

In-numru ta 'oqsma fir-rekord tad-dħul kurrenti.

NR

In-numru totali ta 'reġistri tad-dħul li dehru s'issa.

OFMT

Il-format tal-ħruġ għan-numri, "% .6g" , awtomatikament.

OFS

Is-separatur tal-field tal-ħruġ, spazju awtomatiku.

ORS

Is-separatur tar-rekord tal-output, awtomatikament linja ġdida.

PROCINFO

L-elementi ta 'din il-firxa jipprovdu aċċess għal informazzjoni dwar il-programm AWK running. F'xi sistemi, jista 'jkun hemm elementi fil-firxa, "grupp1" permezz ta' "grupp n " għal xi n , li huwa n-numru ta 'gruppi supplimentari li l-proċess għandu. Uża l-operatur biex tittestja għal dawn l-elementi. L-elementi li ġejjin huma ggarantiti li jkunu disponibbli:

PROCINFO ["egid"]

il-valur tas-sejħa tas-sistema getegid (2).

PROCINFO ["euid"]

il-valur tas-sejħa tas-sistema geteuid (2).

PROCINFO ["FS"]

"FS" jekk il-qsim tal-kamp ma ' FS ikun fis-seħħ, jew "WIDWALI TAL-FIRE" jekk il-qsim tal-kamp ma' FIELDWIDTHS ikun fis-seħħ.

PROCINFO ["gid"]

il-valur tas-sejħa tas-sistema getgid (2).

PROCINFO ["pgrpid"]

l-ID tal-grupp tal-proċess tal-proċess kurrenti.

PROCINFO ["pid"]

l-ID tal-proċess tal-proċess kurrenti.

PROCINFO ["ppid"]

l-ID tal-proċess prinċipali tal-proċess kurrenti.

PROCINFO ["uid"]

il-valur tas-sejħa tas-sistema getuid (2).

RS

Is-separatur tar-rekord tad-dħul, awtomatikament linja ġdida.

RT

It-terminatur tar-rekord. Gawk jistabbilixxi RT għat-test tad-dħul li jaqbel mal-karattru jew espressjoni regolari speċifikata minn RS .

RSTART

L-indiċi ta 'l-ewwel karattru mqabbel b'paragun () ; 0 jekk ma taqbilx. (Dan jimplika li l-indiċijiet tal-karattri jibdew f'wieħed.)

RLENGTH

It-tul tas-siringa mqabbla mill- logħba () ; -1 jekk l-ebda taqbila.

SUBSEP

Il-karattru użat biex jissepara sottointestaturi multipli f'elementi ta 'array, awtomatikament "\ 034" .

TEXTDOMAIN

Id-dominju tat-test tal-programm AWK; użata biex issib it-traduzzjonijiet lokalizzati għall-kordi tal-programm.

Arrays

Arrays huma sottoskritti b'espressjoni bejn parentesi kwadri ( [ u ] ). Jekk l-espressjoni hija lista ta 'espressjoni ( expr , expr ...) allura l- iskeda tas- subsettru hija sekwenza li tikkonsisti fil-konkatenazzjoni tal-valur (string) ta' kull espressjoni, separata bil-valur tal-varjabbli SUBSEP . Din il-faċilità tintuża biex tissimula l-arrays immultiplikati b'dimensjonijiet. Pereżempju:

i = "A"; j = "B"; k = "C"
x [i, j, k] = "bonjour, fid-dinja \ n"

jassenja s-sekwenza "hello, world \ n" għall-element tal-firxa x li hija indiċjata bis-sekwenza "A \ 034B \ 034C" . L-arrays kollha fl-AWK huma assoċjattivi, jiġifieri indiċjati minn valuri ta 'spag.

L-operatur speċjali jista 'jintuża fi stqarrija jekk jew waqt biex tara jekk firxa għandha indiċi li tikkonsisti f'valur partikolari.

jekk (val in array) print array [val]

Jekk l-arranġament ikollu sottoskritti multipli, uża (i, j) fil-firxa .

Il-kostruzzjoni tista 'tintuża wkoll f'lokal għal iterazzjoni fuq l-elementi kollha ta' firxa.

Element jista 'jitħassar minn firxa li tuża d-dikjarazzjoni tħassar . Id-dikjarazzjoni ta ' tħassir tista' tintuża wkoll biex tħassar il-kontenut kollu ta 'firxa, sempliċement billi tispeċifika l-isem tal-firxa mingħajr sottoskritt.

Tidwib u konverżjoni varjabbli

Il-varjabbli u l-oqsma jistgħu jkunu numri (punt varjabbli), jew kordi, jew it-tnejn. Kif il-valur ta 'varjabbli jiġi interpretat jiddependi fuq il-kuntest tiegħu. Jekk tintuża f'espressjoni numerika, tiġi ttrattata bħala numru, jekk tintuża bħala sekwenza titqies bħala sekwenza.

Biex forza varjabbli tiġi ttrattata bħala numru, żid 0 magħha; biex iġiegħelha tiġi ttrattata bħala sekwenza, tikkonkludiha mas-sekwenza nulla.

Meta sekwenza trid tiġi konvertita f'numru, il-konverżjoni titwettaq bl-użu ta ' strtod (3). Numru huwa kkonvertit għal sekwenza billi jintuża l-valur ta ' CONVFMT bħala sekwenza ta' format għal sprintf (3), bil-valur numeriku tal-varjabbli bħala l-argument. Madankollu, minkejja li n-numri kollha fl-AWK huma punt varjabbli, il-valuri integrali huma dejjem konvertiti bħala interi. Għalhekk, mogħti

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

il-varjabbli b għandha valur ta 'sekwenza ta' "12" u mhux "12.00" .

Gawk iwettaq paraguni kif ġej: Jekk żewġ varjabbli huma numeriċi, huma mqabbla numerikament. Jekk valur wieħed huwa numeriku u l-ieħor għandu valur ta 'sekwenza li huwa `` string numeriku' ', allura l-paraguni huma wkoll magħmulin numerikament. Inkella, il-valur numeriku jiġi kkonvertit għal sekwenza u jsir paragun ta 'sekwenza. Żewġ kordi huma mqabbla, ovvjament, bħala kordi. Innota li l-istandard POSIX japplika l-kunċett ta '' 'string numeriku' 'kullimkien, anke għal kostanti ta' spag. Madankollu, dan huwa b'mod ċar żbaljat, u gawk ma jagħmilx dan. (Fortunatament, dan huwa ffissat fil-verżjoni li jmiss ta 'l-istandard.)

Innota li l-kostanti ta 'spag, bħal "57" , mhumiex kordi numeriċi, huma kostanti ta' spag. L-idea ta '`` string numeriku' 'tapplika biss għal fields, input getline , FILENAME , elementi ARGV , elementi ENVIRON u l-elementi ta' firxa maħluqa minn split () li huma kordi numeriċi. L-idea bażika hija li l-input tal-utent , u d-dħul tal-utent biss, li jidher numeriku, għandhom jiġu ttrattati b'dan il-mod.

Varjabbli mhux inizjalizzati għandhom il-valur numeriku 0 u l-valur ta 'l-istring "" (in-null, jew vojt, sekwenza).

Constans ta 'l-Octal u l-Hexadeċimali

Tibda bil-verżjoni 3.1 tal- gawk, tista 'tuża kostali ta' C-stil octal u hexadeċimali fil-kodiċi tas-sors AWK tiegħek. Per eżempju, il-valur octal 011 huwa ugwali għal 10 deċimali, u l-valur hexadeċimali 0x11 huwa ugwali għal ċifri deċimali 17.

Constants String

Il-kostanti tal-istring f'AWK huma sekwenzi ta 'karattri magħluqa bejn kwotazzjonijiet doppji ( " ). Fi strings, ċerti sekwenzi tal-ħarba huma rikonoxxuti, bħal fil-Ċ. Dawn huma:

\\

A backslash litterali.

\ a

Il-karattru `` alert ''; normalment il-karattru ASCII BEL.

\ b

spazju lura.

\ f

form-feed.

\ n

newline.

\ r

ritorn tal-ġarr.

\ t

tab orizzontali.

\ v

tab vertikali.

\ x hex digits

Il-karattru rappreżentat bis-sekwenza ta 'ċifri hexadeċimali wara l- \ x . Bħal fl-ANSIC, iċ-ċifri kollha ta 'hexadecimal li ġejjin huma kkunsidrati bħala parti mis-sekwenza tal-ħarba. (Din il-karatteristika għandha tgħidilna xi ħaġa dwar id-disinn tal-lingwa mill-kumitat.) Pereżempju, "\ X1B" huwa l-karattru ASCIIESC (salvataġġ).

\ ddd

Il-karattru rappreżentat mis-sekwenza ta '1, 2 jew 3 ċifri ta' ċifri octal. Eżempju, "\ 033" huwa l-karattru ASCII ESC (salvataġġ).

\ c

Il-karattru litterali c .

Is-sekwenzi tal-ħarba jistgħu jintużaw ukoll f'espressjonijiet regolari kostanti (eż. / [\ T \ f \ n \ r \ v / match / spaces tal-ispazju ta 'l-iswed).

Fil-mod ta 'kompatibilità, il-karattri rappreżentati mis-sekwenzi tal-ħarba ta' l-octal u l-hexadeċimali huma ttrattati litteralment meta jintużaw f'kalkuli ta 'espressjoni regolari. Għalhekk, / a \ 52b / huwa ekwivalenti għal / a \ * b / .

Disinji u Azzjonijiet

AWK huwa lingwa orjentata lejn il-linja. Il-mudell jiġi l-ewwel, u mbagħad l-azzjoni. Dikjarazzjonijiet ta 'azzjoni huma magħluqa fi { u } . Jew il-mudell jista 'jkun nieqes, jew l-azzjoni tista' tkun nieqsa, iżda, ovvjament, mhux it-tnejn. Jekk il-mudell huwa nieqes, l-azzjoni hija esegwita għal kull rekord ta 'input wieħed. Azzjoni nieqsa hija ekwivalenti għal

{print}

li jimpordja r-rekord kollu.

Il-kummenti jibdew bil-karattru `` # '', u jkomplu sat-tmiem tal-linja. Jistgħu jintużaw linji vojta biex jiġu separati dikjarazzjonijiet. Normalment, dikjarazzjoni tispiċċa b'linja ġdida, madankollu, dan mhuwiex il-każ għal-linji li jispiċċaw fi '`,' ', { , ? , : , && , jew || . Il-linji li jispiċċaw fihom jew inkella wkoll id-dikjarazzjonijiet tagħhom jitkomplew awtomatikament fuq il-linja li ġejja. F'każijiet oħra, linja tista 'titkompla billi tintemm b' "f'liema każ il-linja l-ġdida se tiġi injorata.

Stqarrijiet multipli jistghu jitpoğğew fuq linja wahda billi jisseparawhom b '"`; "". Dan japplika kemm għad-dikjarazzjonijiet fi ħdan il-parti ta 'azzjoni ta' par mudell-azzjoni (il-każ tas-soltu), kif ukoll għad-dikjarazzjonijiet ta 'azzjoni mudell.

Disinji

Il-mudelli AWK jistgħu jkunu wieħed minn dawn li ġejjin:

BEGIN END / espressjoni regolari / mudell ta ' espressjoni relazzjonali & & mudell tad- disinn || mudell tad- disinn ? mudell : mudell ( mudell ) ! mudell tad- disinn1 , mudell2

BEGIN u END huma żewġ tipi speċjali ta 'mudelli li mhumiex ittestjati kontra l-input. Il-partijiet ta 'azzjoni tal-mudelli BEGIN kollha jingħaqdu bħallikieku d-dikjarazzjonijiet kollha kienu nkitbu f'blokk wieħed BEGIN . Jiġu eżegwiti qabel ma tinqara xi input. Bl-istess mod, il-blokki END huma magħquda, u esegwiti meta l-input kollu jkun eżawrit (jew meta dikjarazzjoni tal- ħruġ tiġi esegwita). Il- mudelli BEGIN u END ma jistgħux jiġu kkombinati ma 'mudelli oħra f'espressjonijiet mudell. Il- mudelli BEGIN u END ma jistgħux ikollhom partijiet ta 'azzjoni nieqsa.

Għal / espressjoni / mudelli regolari , id-dikjarazzjoni assoċjata hija eżegwita għal kull rekord ta 'input li jaqbel mal-espressjoni regolari. L-espressjonijiet regolari huma l-istess bħal dawk fl- egrep (1), u huma miġbura fil-qosor hawn taħt.

Espressjoni relazzjonali tista 'tuża kwalunkwe mill-operaturi definiti hawn taħt fit-taqsima dwar l-azzjonijiet. Dawn ġeneralment jittestjaw jekk ċerti oqsma jaqblux ma 'ċerti espressjonijiet regolari.

Il- && , || , u ! L-operaturi huma loġiċi U, loġiċi JEW, u loġiċi MHUX, rispettivament, bħal fil-Ċ. Huma jagħmlu evalwazzjoni ta 'ċirkuwiti qosra, ukoll bħala f'C, u jintużaw biex jikkombinaw espressjonijiet mudell aktar primittivi. Bħal fil-biċċa l-kbira tal-lingwi, il-parentesi jistgħu jintużaw biex ibiddlu l-ordni tal-evalwazzjoni.

L-operatur?: Huwa bħall-istess operatur f'C. Jekk l-ewwel mudell huwa veru allura l-mudell użat għall-ittestjar huwa t-tieni mudell, inkella huwa t-tielet. Jiġi evalwat biss wieħed mit-tieni u t-tielet mudelli.

Il- mudell 1 , il- forma2 ta 'espressjoni tissejjaħ mudell ta ' firxa . Dan jaqbel mar-rekords kollha ta 'l-input li jibdew b'rekord li jaqbel man-numru 1, u jibqa' għaddej sa rekord li jkun jaqbel man- numru 2 , inklużiv. Ma jgħaqqadx ma 'kwalunkwe tip ieħor ta' espressjoni tad-disinn.

Espressjonijiet regolari

L-espressjonijiet regolari huma t-tip estiż misjub f'regol . Dawn huma magħmula minn karattri kif ġej:

c

jaqbel man-non-metacharacter c .

\ c

jaqbel mal-karattru litterali c .

.

jaqbel ma 'xi karattru inkluż linja ġdida.

^

jaqbel mal-bidu ta 'sekwenza.

$

jaqbel mat-tmiem ta 'sekwenza.

[ abc ... ]

lista ta 'karattri, taqbel ma' xi karattru abc ...

[^ abc ... ]

karattru ta 'karattru negattiv, jaqbel ma' xi karattru ħlief abc ....

r1 | r2

alternazzjoni: taqbel ma ' r1 jew r2 .

r1r2

konkatenazzjoni: logħbiet r1 , u mbagħad r2 .

r +

taqbel ma 'waħda jew aktar ta' r .

r *

logħbiet ta 'żero jew aktar ta' r .

r ?

logħbiet żero jew wieħed ta ' r .

( r )

raggruppament: logħbiet r .

r { n }

r { n ,}

r { n , m } Wieħed jew żewġ numri ġewwa ċingi jindikaw espressjoni ta 'intervall . Jekk hemm numru wieħed fil-ċingi, l-espressjoni regolari ta 'qabel r hija ripetuta n darbiet. Jekk hemm żewġ numri separati b'virgola, r hija ripetuta sa m darbiet. Jekk hemm numru wieħed segwit b'virgola, allura r hija ripetuta mill-inqas n darbiet.

Espressjonijiet ta 'intervalli huma disponibbli biss jekk jew --posix jew --re-interval huwa speċifikat fuq il-linja tal-kmand.

\ y

taqbel mat-sekwenza vojta jew fil-bidu jew fit-tmiem ta 'kelma.

\ B

jaqbel mal-sekwenza vojta f'kelma.

\ <

taqbel mat-sekwenza vojta fil-bidu ta 'kelma.

\>

taqbel mat-sekwenza vojta fl-aħħar ta 'kelma.

\ w

jaqbel ma 'kwalunkwe karattru kostitwenti ta' kelma (ittra, ċifra, jew underscore).

\ W

jaqbel ma 'kwalunkwe karattru li mhuwiex kostitwent tal-kelma.

\ "

taqbel mat-sekwenza vojta fil-bidu ta 'buffer (sekwenza).

\ '

taqbel mat-sekwenza vojta fl-aħħar ta 'buffer.

Is-sekwenzi ta 'salvataġġ li huma validi f'sens kostanti (ara hawn taħt) huma wkoll validi f'espressjonijiet regolari.

Il-klassijiet tal-karattri huma karatteristika ġdida introdotta fl-istandard POSIX. Klassi ta 'karattru hija notazzjoni speċjali għad-deskrizzjoni ta' listi ta 'karattri li għandhom attribut speċifiku, iżda fejn il-karattri attwali infushom jistgħu jvarjaw minn pajjiż għal ieħor u / jew minn sett ta' karattri għal sett ta 'karattri. Pereżempju, il-kunċett ta 'karattru alfabetiku huwa differenti fl-Istati Uniti u fi Franza.

Klassi ta 'karattru hija valida biss f'espressjoni regolari fil -parentesi ta' lista ta 'karattri. Il-klassijiet tal-karattri jikkonsistu [: , kelma prinċipali li turi l-klassi, u :] . Il-klassijiet tal-karattru definiti mill-istandard POSIX huma:

[: alnum:]

Karattri alfanumeriċi.

[: alpha:]

Karattri alfabetiċi.

[: vojt:]

Karattri ta 'spazju jew tab.

[: cntrl:]

Karattri ta 'kontroll.

[: numru:]

Karattri numeriċi.

[: graff:]

Karattri li huma t-tnejn printable u viżibbli. (Spazju jista 'jiġi stampat, iżda mhux viżibbli, filwaqt li a hija t-tnejn.)

[: inqas:]

Karattri alfabetiċi b'inqas.

[: print:]

Karattri printable (karattri li mhumiex karattri ta 'kontroll).

[: punct:]

Karattri tal-punteġġjatura (karattri li mhumiex ittri, numri, karattri ta 'kontroll, jew karattri ta' spazju).

[: spazju:]

Karattri spazjali (bħal spazju, tab, u formfeed, biex insemmu xi ftit).

[: fuq:]

Karattri alfabetiċi f'kaxxa sekondarja.

[: xdigit:]

Karattri li huma ċifri hexadeċimali.

Pereżempju, qabel l-istandard POSIX, biex tqabbel karattri alfanumeriċi, kellek tikteb / [A-Za-z0-9] / . Jekk is-sett tal-karattri tiegħek kellu karattri alfabetiċi oħra fiha, dan ma jaqbilx ma 'dawn, u jekk is-sett tal-karattri tiegħek ġabar b'mod differenti minn ASCII, dan jista' ma jkunx jaqbel mal-karattri alfanumeriċi ASCII. Bil-klassijiet tal-karattri POSIX, tista 'tikteb / [[: alnum:]] / , u dan jaqbel mal-karattri alfabetiċi u numeriċi fis-sett tal-karattri tiegħek.

Żewġ sekwenzi addizzjonali addizzjonali jistgħu jidhru fil-listi tal-karattri. Dawn japplikaw għal settijiet ta 'karattri mhux ASCII, li jista' jkollhom simboli singoli (imsejħa elementi tal-ġbir ) li huma rappreżentati b'aktar minn karattru wieħed, kif ukoll bosta karattri li huma ekwivalenti għal skopijiet ta ' ġbir jew issortjar. (Eż., Bil-Franċiż, '`e' '' sempliċi u b'eċċent gravi e 'huma ekwivalenti.)

Simboli kollettivi

Is-simbolu tal-ġbir huwa element li jgħaqqad b'ħafna karattri magħluq fi [. u .] . Pereżempju, jekk ch huwa element li jgħaqqad, allura [[.ch.]] Hija espressjoni regolari li taqbel ma 'dan l-element tal-ġabra, filwaqt li [ch] hija espressjoni regolari li taqbel ma' ċ jew h .

Klassijiet ta 'Ekwivalenza

Klassi ta 'ekwivalenza hija isem speċifiku għal-lokal għal lista ta' karattri li huma ekwivalenti. L-isem huwa magħluq fi [= u =] . Pereżempju, l-isem e jista 'jintuża biex jirrappreżenta l-e `` ``, `` e', '' u `` e `. '' F'dan il - każ, [[= e =]] hija espressjoni regolari taqbel ma 'xi e , e' , jew e ' .

Dawn il-karatteristiċi huma ta 'siwi kbir f'postijiet li ma jitkellmux bl-Ingliż. Il-funzjonijiet tal-librerija li gawk tuża għal espressjoni regolari bħalissa attwalment jirrikonoxxu biss klassijiet ta 'karattri POSIX; ma jirrikonoxxux simboli tal-ġbir jew klassijiet ta 'ekwivalenza.

L-operaturi \ y , \ B , \ < , \> , \ w , \ W , \ and operaturi huma speċifiċi għal gawk ; huma estensjonijiet ibbażati fuq faċilitajiet fil-libreriji tal-espressjoni regolari GNU.

L-għażliet varji tal-linja tal-kmand jikkontrollaw kif gawk tinterpreta karattri f'espressjonijiet regolari.

L-ebda għażliet

Fil-każ default, gawk jipprovdi l-faċilitajiet kollha ta 'espressjonijiet regolari POSIX u l-operaturi tal-espressjoni regolari tal-GNU deskritti hawn fuq. Madankollu, l-espressjonijiet tal-intervall mhumiex appoġġjati.

--posix

Esposti regolari POSIX biss huma appoġġjati, l-operaturi GNU mhumiex speċjali. (Eż., \ W logħbiet w letterali). Espressjonijiet ta 'intervalli huma permessi.

- tradizzjonali

L-espressjonijiet regolari tradizzjonali Unix awk huma mqabbla. L-operaturi GNU mhumiex speċjali, l-espressjonijiet ta 'intervall mhumiex disponibbli, u la huma l-klassijiet ta' karattri POSIX ( [[: alnum:]] u l-bqija). Il-karattri deskritti bis-sekwenzi tal-ħarba ta 'l-oktal u l-hexadeċimali huma ttrattati litteralment, anke jekk jirrappreżentaw metacharacters ta' espressjoni regolari.

--re-intervall

Ħalli espressjonijiet ta 'intervalli f'espressjonijiet regolari, anke jekk - tkun ġiet provduta tradizzjonali .

Azzjonijiet

Dikjarazzjonijiet ta 'azzjoni huma magħluqa f'ċineg, { u } . Dikjarazzjonijiet ta 'azzjoni jikkonsistu fid-dikjarazzjonijiet tas-soltu, kondizzjonali, u looping li jinstabu f'ħafna lingwi. L-operaturi, id-dikjarazzjonijiet tal-kontroll u d-dikjarazzjonijiet ta 'input / output huma disinjati wara dawk f'Ċ.

Operaturi

L-operaturi fl-AWK, skond l-ordni ta 'preċedenza li dejjem tonqos, huma

( ... )

Raggruppament

$

Referenza tal-qasam.

++ -

Żieda u tnaqqis, kemm prefiss kif ukoll postfix.

^

Esponentiazzjoni ( ** tista 'tintuża wkoll, u ** = għall-operatur ta' assenjazzjoni).

+ -!

Unary plus, unary minus, u negazzjoni loġika.

* /%

Multiplikazzjoni, diviżjoni, u modulu.

+ -

Żieda u tnaqqis.

spazju

Konnessjoni ta 'sekwenza.

<>

<=> =

! = == L-operaturi relazzjonali regolari.

~! ~

Konformità ta 'espressjoni regolari, taqbila negattiva. NOTA: Tużax espressjoni kostanti regolari ( / foo / ) fuq in-naħa tax-xellug ta ' ~ jew ! ~ . Uża waħda biss fuq in-naħa tal-lemin. L-espressjoni / foo / ~ exp għandha l-istess tifsira bħal (($ 0 ~ / foo /) ~ exp ) . Dan normalment ma jkunx dak li kien maħsub.

fi

Sħubija fil-firxa.

&&

U loġiku.

||

OR loġiku.

?:

L-espressjoni kondizzjonali C Din għandha l-forma expr1 ? expr2 : expr3 . Jekk expr1 huwa veru, il-valur tal-espressjoni huwa expr2 , inkella huwa expr3 . Wieħed biss ta ' expr2 u expr3 huwa evalwat.

= + = - =

* = / =% = ^ = Assenjazzjoni. Kemm l-assenjazzjoni assoluta ( var = valur ) kif ukoll l-assenjazzjoni tal-operatur (il-forom l-oħra) huma appoġġjati.

Dikjarazzjonijiet ta 'Kontroll

Id-dikjarazzjonijiet ta 'kontroll huma kif ġej:

jekk dikjarazzjoni ( kundizzjoni ) [ inkella dikjarazzjoni ] filwaqt li dikjarazzjoni ( kundizzjoni ) tagħmel dikjarazzjoni filwaqt li ( kundizzjoni ) għal dikjarazzjoni ( expr1 ; expr2 ; expr3 ) għal ( var fil- firxa ) break statement ikomplu iħassru firxa [ indiċi ] iħassru ħarġa ħruġ [ espressjoni ] dikjarazzjonijiet }

Dikjarazzjonijiet I / O

Id-dikjarazzjonijiet ta 'dħul / ħruġ huma kif ġej:

qrib ( fajl [ , kif ] )

Agħlaq fajl, pajp jew ko-proċess. Il- mod fakultattiv kif għandu jintuża biss meta jagħlaq tarf wieħed ta 'pajp b'żewġ direzzjonijiet għal ko-proċess. Għandu jkun valur ta 'sekwenza, jew "għal" jew "minn" .

getline

Issettja $ 0 mir-rekord tad-dħul li jmiss; issettja NF , NR , FNR .

getline < fajl

Issettja $ 0 mir-rekord li jmiss tal- fajl ; sett NF .

getline var

Issettja var minn rekord tad-dħul li jmiss; sett NR , FNR .

getline var < fajl

Issettja var mir-rekord li jmiss tal- fajl .

kmand | getline [ var ]

Mexxi l- kmand tal- pajpijiet tal-produzzjoni jew f'0 $ jew var , kif imsemmi hawn fuq.

kmand | & getline [ var ]

Mexxi l- kmand bħala ko-proċess ta 'pajpijiet tal-produzzjoni jew f'0 $ jew var , kif imsemmi hawn fuq. Ko-proċessi huma estensjoni gawk .

li jmiss

Twaqqaf l-ipproċessar tar-reġistru tal-input kurrenti. Ir-rekord tad-dħul li jmiss jinqara u l-ipproċessar jibda 'l fuq bl-ewwel mudell fil-programm AWK. Jekk tintlaħaq it-tmiem tad-data tal-input, il-blokk (s) ta 'l- END , jekk ikun hemm, jiġu eżegwiti.

nextfile

Twaqqaf l-ipproċessar tal-fajl ta 'input kurrenti. Ir-rekord tad-dħul li jmiss jinqara ġej mill-fajl tad-dħul li jmiss. FILENAME u ARGIND huma aġġornati, FNR huwa ssettjat mill-ġdid għal 1, u l-ipproċessar jibda bl-ewwel mudell fil-programm AWK. Jekk tintlaħaq it-tmiem tad-data tal-input, il-blokk (s) ta 'l- END , jekk ikun hemm, jiġu eżegwiti.

istampar

Stampa r-rekord kurrenti. Ir-rekord tal-ħruġ jintemm bil-valur tal-varjabbli ta 'l- ORS .

print expr-list

Espressjonijiet tal-istampar. Kull espressjoni hija separata bil-valur tal-varjabbli OFS . Ir-rekord tal-ħruġ jintemm bil-valur tal-varjabbli ta 'l- ORS .

print expr-list > fajl

Iffirma espressjonijiet fil- fajl . Kull espressjoni hija separata bil-valur tal-varjabbli OFS . Ir-rekord tal-ħruġ jintemm bil-valur tal-varjabbli ta 'l- ORS .

printf fmt, expr-list

Il-format u l-istampar.

printf fmt, expr-list > fajl

Format u istampar fuq il- fajl .

sistema ( cmd-line )

Execute the command cmd-line , u rritorna l-istatus ta 'ħruġ. (Dan jista 'ma jkunx disponibbli fuq sistemi mhux POSIX.)

fflush ( [ fajl ] )

Aħsel kwalunkwe buffers assoċjati mal-fajl tal-ħruġ miftuħ jew il- fajl tal- pajpijiet. Jekk il- fajl huwa nieqes, allura l-output standard jitlaħlaħ. Jekk il- fajl huwa s-sekwenza nulla, allura l-fajls kollha miftuħa tal-ħruġ u l-pajpijiet għandhom il-buffers mlaħalħa.

Se jkun hemm direzzjonijiet mill-ġdid ta 'ħruġ addizzjonali għall- istampar u l- istampar .

istampar ... >> fajl

jehmeż ir-riżultat tal- fajl .

istampar ... | kmand

jikteb fuq pajp.

istampar ... | & kmand

tibgħat id-data għal ko-proċess.

Il-kmand tal-ordni getsline jirritorna 0 fit-tmiem tal-fajl u -1 fuq żball. Fuq żball, ERRNO fih sekwenza li tiddeskrivi l-problema.

NOTA: Jekk tuża pajp jew ko-proċess biex tinkiseb , jew mill- istampar jew l- istampar fi ħdan linja, għandek tuża mill-qrib () biex toħloq każijiet ġodda tal-kmand. AWK ma jagħlaqx awtomatikament pajpijiet jew ko-proċessi meta jirritornaw EOF.

L-Istqarrija printf

Il-verżjonijiet AWK tad-dikjarazzjoni printf u l-funzjoni sprintf () ara l-formati tal-ispeċifikazzjoni tal-konverżjoni li ġejjin:

% c

Karattru ASCII. Jekk l-argument użat għal % c huwa numeriku, huwa trattat bħala karattru u stampat. Inkella, l-argument jitqies bħala sekwenza, u l-uniku karattru ewlieni ta 'dik is-sekwenza huwa stampat.

% d , % i

Numru deċimali (il-parti tan-numru sħiħ).

% e,% E

Numru tal-punt f'wiċċ l-ilma tal-formola [-] d.dddddde [+ -] dd . Il-format % E juża E minflok e .

% f

Numru ta 'punt f'wiċċ l-ilma tal-formola [-] ddd.dddddd .

% g,% G

Uża % e jew % f konverżjoni, liema minnhom tkun iqsar, b'żeri mhux sinifikanti soppressi. Il-format % G juża % E minflok % e .

% o

Numru octal mhux iffirmat (ukoll numru sħiħ).

% u Numru deċimali mhux iffirmat (għal darb'oħra, numru sħiħ).

% s

String ta 'karattri.

% x,% X

Numru hexadeċimali mhux iffirmat (numru sħiħ). Il-format % X juża ABCDEF minflok abcdef .

%%

Karattru wieħed ta ' % ; l-ebda argument ma jiġi konvertit.

Fakultattiv, parametri addizzjonali jistgħu jkunu bejn % u l-ittra ta 'kontroll:

count $

Uża l-argument tal- għadd f'dan il-punt fil-formatting. Dan jissejjaħ speċifikatur pożizzjonali u huwa maħsub primarjament għall-użu f'verżjonijiet tradotti ta 'strings ta' format, mhux fit-test oriġinali ta 'programm AWK. Hija estensjoni tal- gawk .

-

L-espressjoni għandha titħalla ġġustifikata fil-qasam tagħha.

spazju

Għal konverżjonijiet numeriċi, iffissaw valuri pożittivi bi spazju, u valuri negattivi b'sinjal ta 'tnaqqis.

+

Is-sinjal plus, użat qabel il-modifikatur tal-wisa '(ara taħt), jgħid li dejjem jipprovdi sinjal għal konverżjonijiet numeriċi, anke jekk id-data li għandha tiġi fformattjata hija pożittiva. Il- + jegħleb il-modifikatur tal-ispazju.

#

Uża "formola alternattiva" għal ċerti ittri ta 'kontroll. Għal % o , iforni żero ewlieni. Għal % x , u % X , tforni 0x jew 0X ewlenin għal riżultat mhux żero. Għal % e , % E , u % f , ir-riżultat dejjem ikun fih punt deċimali. Għal % g , u % G , żerijiet li jintbagħtu lura mhumiex imneħħija mir-riżultat.

0

A li jwassal 0 (żero) jaġixxi bħala bandiera, li jindika l-output għandu jkun ikkuttunat b'żero minflok spazji. Dan japplika anke għal formati tal-produzzjoni mhux numeriċi. Dan il-bandiera għandu effett biss meta l-wisa 'tal-kamp hija usa' mill-valur li għandu jiġi stampat.

wisa '

Il-kamp għandu jkun ikkuttunat għal din il-wisa '. Il-kamp normalment ikun ikkuttunat bi spazji. Jekk il-bandiera 0 intużat, hija kkuttunata b'żero.

. prec

Numru li jispeċifika l-preċiżjoni għall-użu meta tkun stampata. Għall-formati % e , % E , u % f , dan jispeċifika n-numru ta 'numri li trid stampat fuq il-lemin tal-punt deċimali. Għall-formati % g , u % G , tispeċifika n-numru massimu ta 'ċifri sinifikanti. Għall-formati % d , % o , % i , % u , % x , u % X , tispeċifika n-numru minimu ta 'ċifri għall-istampar. Għal % s , tispeċifika n-numru massimu ta 'karattri mis-sekwenza li għandha tiġi stampata.

Il- wisa ' dinamiku u l-kapaċitajiet prekarji tar-rutini ANSI C printf () huma appoġġjati. A * minflok jew l-ispeċifikazzjonijiet tal- wisa ' jew tal- preka jikkawżaw li l-valuri tagħhom jittieħdu mil-lista tal-argumenti għall- printf jew sprintf () . Biex tuża speċifikatur pożizzjonali b'wisa 'jew preċiżjoni dinamika, agħti l- għadd $ wara * fid-daqs tal-format. Pereżempju, "% 3 $ * 2 $. * 1 $ s" .

Ismijiet Speċjali tal-Fajls

Meta nagħmel id-direzzjoni mill-ġdid tal-I / O minn stampat jew stampat f'fajl, jew permezz ta ' getline minn fajl, gawk jirrikonoxxi ċerti fajls speċjali internament. Dawn il-fajls jippermettu aċċess għal deskritturi tal-fajls miftuħa li ntirtu mill-proċess ġenwin ta ' gawk (normalment il-qoxra). Dawn l-ismijiet tal-fajls jistgħu jintużaw ukoll fuq il-linja tal-kmand biex insemmu l-fajls tad-dejta. Il-fajl huma:

/ dev / stdin

L-input standard.

/ dev / stdout

L-output standard.

/ dev / stderr

L-output ta 'żball standard.

/ dev / fd / n

Il-fajl assoċjat mad-deskrittur tal-fajl miftuħ n .

Dawn huma partikolarment utli għal messaġġi ta 'żball. Pereżempju:

Stampa "Intom tajtha!" > "/ dev / stderr"

billi kieku altrimenti għandek tuża

Stampa "Intom tajtha!" | "qattus 1> & 2"

Dawn il-fajls speċjali li ġejjin jistgħu jintużaw ma 'l-operatur ta' & co-process biex jinħolqu konnessjonijiet tan-netwerk TCP / IP.

/ inet / tcp / lport / rhost / rport

Fajl għal konnessjoni TCP / IP fuq port tal-port lokali lil rhost ospitanti remot fuq port rport remot. Uża port ta ' 0 biex is-sistema tagħżel port.

/ inet / udp / lport / rhost / rport

Simili, imma juża UDP / IP minflok TCP / IP.

/ inet / raw / lport / rhost / rport

Riservat għal użu fil-ġejjieni.

L-ismijiet speċjali oħra jipprovdu aċċess għal informazzjoni dwar il-proċess ta 'running gawk . Dawn il-fajls issa huma skaduti. Uża l-firxa PROCINFO biex tikseb l-informazzjoni li jipprovdu. Il-fajl huma:

/ dev / pid

Qari ta 'dan il-fajl jirritorna l-ID tal-proċess tal-proċess kurrenti, f'deċimali, mitmum b'linja ġdida.

/ dev / ppid

Qari ta 'dan il-fajl jirritorna l-ID tal-proċess prinċipali tal-proċess kurrenti, f'deċimali, mitmum b'linja ġdida.

/ dev / pgrpid

Qari ta 'dan il-fajl jirritorna l-ID tal-grupp tal-proċess tal-proċess attwali, f'deċimali, mitmum b'linja ġdida.

/ dev / utent

Qari ta 'dan il-fajl jirritorna rekord wieħed mitmum b'linja ġdida. L-oqsma huma separati bl-ispazji. $ 1 huwa l-valur tas-sejħa tas-sistema getuid (2), $ 2 huwa l-valur tas-sejħa tas-sistema geteuid (2), $ 3 huwa l-valur tas-sejħa tas-sistema getgid (2) u $ 4 huwa l-valur ta ' getegid (2) sejħa tas-sistema. Jekk hemm xi oqsma addizzjonali, huma l-IDs tal-grupp mibgħuta lura minn getgroups (2). Gruppi multipli ma jistgħux jiġu appoġġati fis-sistemi kollha.

Funzjonijiet Numeriċi

AWK għandu dawn il-funzjonijiet aritmetiċi integrati li ġejjin:

atan2 ( y , x )

Jirritorna l-arctangent ta ' y / x f'radians.

cos ( expr )

Jirritorna l-cosine ta ' expr , li huwa f'radjan.

exp ( expr )

Il-funzjoni esponenzjali.

int ( expr )

Truncates għal numru sħiħ.

log ( expr )

Il-funzjoni tal-logaritmu naturali.

rand ()

Jirritorna numru każwali bejn 0 u 1.

sin ( expr )

Jirritorna s-sine ta ' expr , li huwa f'radjan.

sqrt ( expr )

Il-funzjoni tal-għeruq kwadrat

srand ( [ expr ] )

Juża l- expr bħala żerriegħa ġdida għall-ġeneratur tan-numru bl-addoċċ. Jekk ma tingħata l-ebda espressjoni, tintuża l-ħin tal-ġurnata. Il-valur tar-ritorn huwa ż-żerriegħa ta 'qabel għall-ġeneratur tan-numru bl-addoċċ.

Funzjonijiet tas-sekwenza

Gawk għandu s-segwenti funzjonijiet ta 'spag integrati:

asort ( s [ , d ] )

Jirritorna n-numru ta 'elementi fil-firxa tas-sors s . Il-kontenut ta ' s huwa magħżul bl-użu tar-regoli normali ta' gawk biex jitqabblu l-valuri, u l-indiċi tal-valuri magħżula ta ' s huma sostitwiti b'numri interi sekwenzjali li jibdew b'1. , u mbagħad d hija magħżula, u tħalli l-indiċi tal-firxa tas-sors mhux mibdula.

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

Fittex is-sekwenza tal-mira t għal logħbiet tal-espressjoni regolari r . Jekk h hija sekwenza li tibda b'g jew G , imbagħad ibdel il-logħbiet kollha ta ' r ma' s . Inkella, h hija numru li jindika liema taqbila ta ' r biex tissostitwixxi. Jekk t ma jiġix ipprovdut, minflok jintuża $ 0 . Fi ħdan it-test ta 'sostituzzjoni, is-sekwenza \ n , fejn n hija ċifra minn 1 sa 9, tista' tintuża biex tindika biss it-test li jaqbel mas-sub-espresjoni parentesizzata. Is-sekwenza \ 0 tirrappreżenta t-test imqabbel kollu, kif jagħmel il-karattru & . B'differenza sub () u gsub () , is-sekwenza modifikata tiġi rritornata bħala riżultat tal-funzjoni, u s-sekwenza oriġinali tal-mira ma tinbidilx.

gsub ( r , s [ , t ] )

Għal kull sottotaqsima li tqabbel l-espressjoni regolari r fis-sekwenza t , ibdel is-sekwenzi, u rritornat in-numru ta 'sostituzzjonijiet. Jekk t ma tingħatax, uża $ 0 . An & fit-test ta 'sostituzzjoni huwa sostitwit bit-test li fil-fatt kien imqabbel. Uża \ & biex tikseb litterali & . (Dan għandu jkun ittajpjat bħala "\\ &" ; ara GAWK: Programmazzjoni AWK Effettiva għal diskussjoni aktar sħiħa tar-regoli għal & 's u backslashes fit-test ta' sostituzzjoni ta ' sub () , gsub () , u gensub ()) .

indiċi ( s , t )

Jirritorna l-indiċi tas-sekwenza t fis-sekwenza s , jew 0 jekk t ma jkunx preżenti. (Dan jimplika li l-indiċijiet tal-karattri jibdew f'wieħed.)

tul ( [ s ] )

Jirritorna t-tul tas-sekwenza , jew it-tul ta ' $ 0 jekk s ma jiġix ipprovdut.

logħba ( s , r [ , a ] )

Jirritorna l-pożizzjoni f 's fejn issir l-espressjoni regolari r , jew 0 jekk r ma jkunx preżenti, u tistabbilixxi l-valuri ta ' RSTART u RLENGTH . Innota li l-ordni ta 'l-argument hija l-istess bħal dik għall-operatur ~ : str ~ re . Jekk il-firxa a hija pprovduta, a hija approvata u mbagħad l-elementi 1 sa n huma mimlija bil-porzjonijiet ta ' s li jaqblu mas-subexpressjoni parentesi korrispondenti f'r. L-element 0'ta ' a fih il-porzjon ta' s mqabbla mill-espressjoni regolari sħiħa r .

maqsuma ( s , a [ , r ] )

Jaqsam is-sekwenzi fil-firxa a fuq l-espressjoni regolari r , u jirritorna n-numru ta 'oqsma. Jekk r hija mħollija barra, FS minflok tintuża. Il-firxa a hija approvata l-ewwel. It-tqassim iġib ruħu identiku għall-qsim tal-kamp, ​​deskritt hawn fuq.

sprintf ( fmt , expr-list )

Iffirma l-lista ta 'l-expr skond fmt , u jirritorna s-sekwenza li tirriżulta.

strtonum ( str )

Eżamina str , u jirritorna l-valur numeriku tiegħu. Jekk str jibda b'0 li jwassal, strtonum () jassumi li str huwa numru octal. Jekk str jibda b'0x jew 0X li jwasslu , strtonum () jassumi li str huwa numru hexadeċimali.

sub ( r , s [ , t ] )

Eżatt bħal gsub () , iżda biss l-ewwel sottointestatura li tqabbel tinbidel.

substr ( s , i [ , n ] )

Jirritorna l-aktar n- karattru ta 'sottointestatura ta' s li tibda minn i . Jekk n jitħalla barra, jintuża l-bqija ta ' s .

tolower ( str )

Jipproponi kopja ta 'l-istr str , bil-karattri ta' l-ogħla fażi kollha str tradotti għall-kontropartijiet korrispondenti ta 'każijiet żgħar tagħhom. Karattri mhux alfabetiċi jitħallew mhux mibdula.

toupper ( str )

Jirritorna kopja tas-sekwenza ta ' str , bil-karattri b'inqas karattri str tradotti għall-kontropartijiet korrispondenti tagħhom ta' fuq. Karattri mhux alfabetiċi jitħallew mhux mibdula.

Ħin Funzjonijiet

Peress li wieħed mill-użi primarji tal-programmi AWK huwa l-ipproċessar ta 'fajls ta' log li fihom informazzjoni dwar il-ħin stampat, gawk jipprovdi l-funzjonijiet li ġejjin biex jiksbu timbri ta 'ħin u ifformattjarhom.

mktime ( dataspec )

Id- dati tar- Rimmijiet f'timbru ta 'ħin ta' l-istess forma kif irritornat mis- sistema () . Id- datapec hija sekwenza tal-form SSSS MM DD HH MM SS [DST] . Il-kontenut tas-sekwenza huwa ta 'sitt jew seba' numri li jirrappreżentaw rispettivament is-sena sħiħa inkluż is-seklu, ix-xahar minn 1 sa 12, il-jum tax-xahar minn 1 sa 31, siegħa tal-ġurnata minn 0 sa 23, il-minuta minn 0 sa 59, u t-tieni minn 0 sa 60, u bandiera mhux obbligatorja li tiffranka l-jum. Il-valuri ta 'dawn in-numri m'għandhomx għalfejn ikunu fil-meded speċifikati; per eżempju, siegħa ta '-1 tfisser siegħa qabel nofsillejl. Il-kalendarju Gregorjan ta 'l-oriġini huwa assunt, bis-sena 0 qabel is-sena 1 u s-sena -1 qabel is-sena 0. Il-ħin huwa preżunt li jinsab fiż-żona tal-fus lokali. Jekk il-bandiera li tiffranka l-jum tkun pożittiva, il-ħin huwa preżunt bħala ħin ta 'ffrankar tal-ġurnata; jekk żero, il-ħin huwa meqjus bħala ħin standard; u jekk negattiva (l-inadempjenza), mktime () jipprova jiddetermina jekk il-ħin tal- issettjar tal- jum huwiex fis-seħħ għaż-żmien speċifikat. Jekk datapec ma fihx elementi biżżejjed jew jekk il-ħin li jirriżulta hu barra mill-firxa, mktime () jirritorna -1.

strftime ( [ format [ , timestamp ]] )

Timestamp tal- formati skont l-ispeċifikazzjoni fil- format. Il- marka taż- żmien għandha tkun ta 'l-istess forma bħal dik mogħtija lura mis- sistema () . Jekk timestamp huwa nieqes, tintuża l-ħin attwali tal-ġurnata. Jekk il- format huwa nieqes, jintuża format awtomatiku ekwivalenti għall-ħruġ tad- data (1). Ara l-ispeċifikazzjoni tal-funzjoni strftime () f'ANSI C għall-konverżjonijiet tal-format li huma garantiti li jkunu disponibbli. Verżjoni ta ' strftime ta' dominju pubbliku (3) u paġna manwal għalih jiġu mal- gawk ; jekk dik il-verżjoni ntużat biex tinbena Gawk , allura l-konverżjonijiet kollha deskritti f'dik il-paġna man huma disponibbli għal Gawk.

systime ()

Jirritorna l-ħin attwali tal-ġurnata bħala n-numru ta 'sekondi mill-Epoch (1970-01-01 00:00:00 UTC fuq is-sistemi POSIX).

Manipulazzjonijiet Bit Funzjonijiet

Tibda bil-verżjoni 3.1 ta ' gawk , il-funzjonijiet ta' manipulazzjoni tal-bit li ġejjin huma disponibbli. Huma jaħdmu bil-konverżjoni ta 'valuri ta' punt varjabbli ta 'preċiżjoni doppja għal interi twal mhux iffirmati , jagħmlu l-operazzjoni, u mbagħad jikkonvertu r-riżultat lura għal punt varjabbli. Il-funzjonijiet huma:

u ( v1 , v2 )

Irritorna l-bit bitħa U tal-valuri pprovduti minn v1 u v2 .

compl ( val )

Ritorn il-komplement bit-bit tal- val .

lshift ( val , għadd )

Irritorna l-valur tal- val , imċaqlaq xellug mill- għadd bits.

jew ( v1 , v2 )

Iddawwar il-bit bit-tarf OR tal-valuri pprovduti minn v1 u v2 .

rshift ( val , għadd )

Iddawwar il-valur tal- val , imqassam id-dritt minn bits ta ' għadd .

xor ( v1 , v2 )

Irritorna l-XOR bit-bitwar tal-valuri pprovduti minn v1 u v2 .

Funzjonijiet ta 'Internazzjonalizzazzjoni

Tibda bil-verżjoni 3.1 tal- gawk , il-funzjonijiet li ġejjin jistgħu jintużaw minn ġewwa l-programm AWK tiegħek biex jittraduċi kordi f'ħin reali. Għal dettalji sħaħ, ara GAWK: Programmazzjoni AWK Effettiva .

bindtextdomain ( direttorju [ , dominju ] )

Tiddefinixxi d-direttorju fejn gawk tħares għall-fajls .mo , f'każ li ma jkunux jistgħu jew ma jistgħux jitqiegħdu fil-postijiet '' standard '' (eż., Waqt l-ittestjar). Jipproponi d-direttorju fejn id- dominju huwa "marbut".

Id- dominju default huwa l-valur ta ' TEXTDOMAIN . Jekk id-direttorju huwa s-sekwenza nulla ( "" ), allura bindtextdomain () jirritorna l-vinkolatura kurrenti għad- dominju mogħti.

dcgettext ( string [ , domain [ , kategorija ]] )

Jirritorna t-traduzzjoni ta ' spaga fid-dominju tad- dominju tat-test għall-kategorija tal- kategorija tal- lokalità. Il-valur awtomatiku għad- dominju huwa l-valur kurrenti ta ' TEXTDOMAIN . Il-valur awtomatiku għall- kategorija huwa "LC_MESSAGES" .

Jekk tforni valur għall- kategorija , għandha tkun sensiela ugwali għal waħda mill-kategoriji lokali magħrufa deskritti f'GAWK: Programmazzjoni AWK Effettiva . Għandek ukoll tforni qasam tat-test. Uża TEXTDOMAIN jekk trid tuża d-dominju kurrenti.

dcngettext ( string1 , string2 , numru [ , domain [ , kategorija ]] )

Jirritorna l-formola plural użata għan- numru tat-traduzzjoni tal- string1 u s- sekwenza2 fid-domain tad- dominju tat-test għall-kategorija tal- kategorija tal- lokalità. Il-valur awtomatiku għad- dominju huwa l-valur kurrenti ta ' TEXTDOMAIN . Il-valur awtomatiku għall- kategorija huwa "LC_MESSAGES" .

Jekk tforni valur għall- kategorija , għandha tkun sensiela ugwali għal waħda mill-kategoriji lokali magħrufa deskritti f'GAWK: Programmazzjoni AWK Effettiva . Għandek ukoll tforni qasam tat-test. Uża TEXTDOMAIN jekk trid tuża d-dominju kurrenti.

FUNZJONIJIET DEFINITI GĦALL-UTENTI

Il-funzjonijiet fil-AWK huma definiti kif ġej:

isem tal- funzjoni ( lista ta 'parametri ) { dikjarazzjonijiet }

Il-funzjonijiet huma esegwiti meta jiġu msejħa minn espressjonijiet kemm f'mudelli jew azzjonijiet. Il-parametri attwali provduti fis-sejħa tal-funzjoni huma użati biex jinħolqu l-parametri formali ddikjarati fil-funzjoni. L-arrays jiġu mgħoddija b'referenza, varjabbli oħra jgħaddu mill-valur.

Peress li l-funzjonijiet ma kinux oriġinarjament parti mill-lingwa AWK, id-dispożizzjoni għal varjabbli lokali hija pjuttost ta 'skumdità: Huma ddikjarati bħala parametri żejda fil-lista ta' parametri. Il-konvenzjoni għandha tissepara varjabbli lokali minn parametri reali minn spazji żejda fil-lista ta 'parametri. Pereżempju:

funzjoni f (p, q, a, b) # a ub huma lokali {...} / abc / {...; f (1, 2); ...}

Il-parentesi tax-xellug f'sejħa funzjoni hija meħtieġa biex isegwi immedjatament l-isem tal-funzjoni, mingħajr spazju abjad li jintervjeni. Dan biex tevita ambigwità sintattika ma 'l-operatur tal-konkatenazzjoni. Din ir-restrizzjoni ma tapplikax għall-funzjonijiet integrati elenkati hawn fuq.

Funzjonijiet jistgħu jċemplu lil xulxin u jistgħu jkunu recursive. Il-parametri tal-funzjoni użati bħala varjabbli lokali huma inizzjalizzati għas-sekwenza nulla u n-numru żero wara l-invokazzjoni tal-funzjoni.

Uża r-ritorn expr biex tirritorna valur minn funzjoni. Il-valur tar-ritorn mhuwiex definit jekk ma jingħata l-ebda valur, jew jekk il-funzjoni jirritorna billi `` jaqla '' l-aħħar.

Jekk - il- folja tkun ġiet ipprovduta, gawk iwissi dwar is-sejħiet għal funzjonijiet mhux definiti fil-ħin tal-parse, minflok f'ħin reali. Is-sejħa għal funzjoni mhux definita f'ħin reali hija żball fatali.

Il-kelma func tista 'tintuża minflok il- funzjoni .

TAGĦBIJA DINAMIKA TA 'FUNZJONIJIET ĠODDA

Tibda bil-verżjoni 3.1 tal- gawk , tista 'żżid b'mod dinamiku funzjonijiet integrati ġodda mal-interpretu tal- gawk running. Id-dettalji sħaħ huma lil hinn mill-ambitu ta 'din il-paġna manwali; ara GAWK: Programmazzjoni AWK effettiva għad-dettalji.

estensjoni ( oġġett , funzjoni )

Dinamikament tgħaqqad il-fajl tal-oġġett komuni msemmi bl- oġġett , u tinvoka l- funzjoni f'dak l-oġġett, biex twettaq l-inizjalizzazzjoni. Dawn it-tnejn għandhom jiġu pprovduti bħala kordi. Jirritorna l-valur mogħti lura mill- funzjoni .

Din il-funzjoni hija pprovduta u dokumentata f'GAWK: Programmazzjoni AWK Effettiva , iżda kollox dwar din il-karatteristika x'aktarx jinbidel fir-rilaxx li jmiss. Aħna qawwi nirrakkomandaw li ma tużax din il-karatteristika għal kwalunkwe ħaġa li m'intix lest li terġa 'lura.

SINJALI

pgawk taċċetta żewġ sinjali. SIGUSR1 jikkawża li jinfetaħ profil u ċellola ta 'funzjoni fuq il-fajl tal-profil, li huwa jew awkprof.out , jew kwalunkwe fajl kien imsemmi bl-għażla --profil . Imbagħad tkompli taħdem. SIGHUP jikkawża li jifdi l -profil u ċ-ċellola tal-funzjoni u mbagħad joħroġ.

EŻEMPJI

Stampa u ssetja l-ismijiet tal-login tal-utenti kollha: BEGIN {FS = ":"} {print $ 1 | "sort"} Konness linji f'fajl: {nlines ++} END {print nlines} Qabel kull linja bin-numru tiegħu fil-fajl: {print FNR, $ 0} Kunċatt u n-numru tal-linja (varjazzjoni fuq tema): {print NR, $ 0}

Internalizzazzjoni

Il-kostanti tal-istring huma sekwenzi ta 'karattri magħluqin f'kwotazzjonijiet doppji. F'ambjenti li ma jitkellmux bl-Ingliż, huwa possibbli li jiġu mmarkati kordi fil-programm AWK bħala li jeħtieġu traduzzjoni fil-lingwa naturali nattiva. Strings bħal dawn huma mmarkati fil-programm AWK b'qerq prominenti ewlieni (`` _ ''). Pereżempju,

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

dejjem stampi bonjour, dinja . Imma,

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

jista 'jistampa bonjour, monde fi Franza.

Hemm diversi passi involuti fil-produzzjoni u t-tmexxija ta 'programm AWK lokalizzabbli.

1.

Żid azzjoni BEGIN biex tassenja valur lill-varjabbli TEXTDOMAIN biex tistabbilixxi d-domain tat-test għal isem assoċjat mal-programm tiegħek.


BEGIN {TEXTDOMAIN = "myprog"}

Dan jippermetti lil Gawk isibu l-fajl .mo assoċjat mal-programm tiegħek. Mingħajr dan il-pass, gawk juża d-dominju tat-test tal- messaġġi , li x'aktarx ma jkunx fih traduzzjonijiet għall-programm tiegħek.

2.

Immarka l-kordi kollha li għandhom jiġu tradotti b'referenza ta 'importanza ewlenija.

3.

Jekk meħtieġ, uża l- funzjonijiet dcgettext () u / jew bindtextdomain () fil-programm tiegħek, kif xieraq.

4.

Mexxi gawk -gen-po -f myprog.awk> myprog.po biex tiġġenera fajl .po għall-programm tiegħek.

5.

Ipprovdi traduzzjonijiet xierqa, u tibni u tinstalla fajl .mo korrispondenti.

Il-karatteristiċi ta 'internazzjonalizzazzjoni huma deskritti fid-dettall sħiħ fil- GAWK: Programmazzjoni AWK Effettiva .

Kompatibilità ta 'Posix

L-għan primarju għal gawk huwa l-kompatibilità mal-istandard POSIX, kif ukoll bl-aħħar verżjoni tal-UNIX awk . Għal dan il-għan, gawk tinkorpora l-karatteristiċi viżibbli li ġejjin li mhumiex deskritti fil-ktieb AWK, iżda huma parti mill-verżjoni Bell of Laboratories ta ' awk , u huma fl-istandard POSIX.

Il-ktieb jindika li l-assenjazzjoni tal-varjabbli tal-linja tal-kmand isseħħ meta awk inkella jiftaħ l-argument bħala fajl, li huwa wara li l-blokk BEGIN jiġi eżegwit. Madankollu, f'implimentazzjonijiet preċedenti, meta tali assenjazzjoni deher qabel kwalunkwe ismijiet tal-fajl, l-assenjazzjoni se ssir qabel ma l -blokk BEGIN kien imwettaq. L-applikazzjonijiet daħlu jiddependu fuq din il-karatteristika ``. '' Meta awk inbidel biex tqabbel id-dokumentazzjoni tiegħu, l-għażla -v għall-assenjazzjoni ta 'varjabbli qabel l-eżekuzzjoni tal-programm ġiet miżjuda biex takkomoda applikazzjonijiet li jiddependu fuq l-imġiba qadima. (Din il-karatteristika ġiet miftiehma kemm mill-Laboratorji Bell u mill-iżviluppaturi tal-GNU).

L-għażla -W għal karatteristiċi speċifiċi ta 'implimentazzjoni hija mill-istandard POSIX.

Meta tipproċessa l-argumenti, gawk tuża l-għażla speċjali `` - '' biex tindika t-tmiem ta 'l-argumenti. Fil-mod ta 'kompatibilità, iwissi dwar iżda xorta jinjora għażliet mhux definiti. Fit-tħaddim normali, dawn l-argumenti jiġu mgħoddija lill-programm AWK biex din tipproċessa.

Il-ktieb AWK ma jiddefinix il-valur tar-ritorn ta ' srand () . L-istandard POSIX għandu jirritorna ż-żerriegħa li kien qed juża, biex jippermetti żamma tar-rekords ta 'sekwenzi ta' numri bl-addoċċ. Għalhekk srand () in gawk jirritorna wkoll iż-żerriegħa attwali tagħha.

Karatteristiċi ġodda oħrajn huma: L-użu ta 'għażliet multipli -f (minn MKS awk ); il-firxa ENVIRON ; is-sekwenzi tal-ħarġien (u magħmulin oriġinarjament fi gawk u mitmugħa lura fil-verżjoni Bell Laboratories); il- funzjonijiet integrati tat - tolower () u toupper () (mill-verżjoni Bell Laboratories); u l-ispeċifikazzjonijiet tal-konverżjoni ANSI C f'printf (magħmul l-ewwel fil-verżjoni Bell Laboratories).

Karatteristiċi Storiċi

Hemm żewġ karatteristiċi ta 'l-implimentazzjoni storika ta' AWK li jappoġġja gawk . L-ewwelnett, huwa possibbli li tissejjaħ it- tul () funzjoni integrata mhux biss bl-ebda argument, iżda anke mingħajr parentesi! Għalhekk,

a = tul # Holy Algol 60, Batman!

huwa l-istess bħal jew ta '

a = tul ()
a = tul ($ 0)

Din il-karatteristika hija mmarkata bħala `` deprezzata '' fl-istandard POSIX, u gawk toħroġ twissija dwar l-użu tagħha jekk --lint hija speċifikata fuq il-linja tal-kmand.

Il-karatteristika l-oħra hija l-użu ta 'jew id-dikjarazzjonijiet ta' kontinwazzjoni jew ta ' waqfien barra l-korp ta' waqt , għal , jew tagħmel loop. L-implimentazzjonijiet tradizzjonali tal-AWK ittrattaw dan l-użu bħala ekwivalenti għad-dikjarazzjoni li jmiss . Gawk jappoġġja dan l-użu jekk - ġie speċifikat it- tradizzjonali .

Estensjonijiet GNU

Gawk għandha numru ta 'estensjonijiet għal POSIX awk . Dawn huma deskritti f'din is-sezzjoni. L-estensjonijiet kollha deskritti hawn jistgħu jiġu diżattivati ​​billi tinvoka lil Gawk bl-għażla tradizzjonali .

Il-karatteristiċi li ġejjin ta ' gawk mhumiex disponibbli fil-POSIX awk .

*

L-ebda tiftixa ta 'passaġġ ma ssir għal fajls imsemmija permezz tal-għażla -f . Għalhekk il-varjabbli ambjentali AWKPATH mhuwiex speċjali.

*

Is-sekwenza tal-ħrib \ x . (Persuni b'diżabilità ma ' --posix .)

*

Il-funzjoni fflush () . (Persuni b'diżabilità ma ' --posix .)

*

Il-ħila li tkompli linji wara ? u :. (Persuni b'diżabilità ma ' --posix .)

*

Kostali ta 'octal u hexadecimali fil-programmi AWK.

*

Il- varjabbli ARGIND , BINMODE , ERRNO , LINT , RT u TEXTDOMAIN mhumiex speċjali.

*

Il-varjabbli IGNORECASE u l-effetti sekondarji tiegħu mhumiex disponibbli.

*

Il-varjabbli FIELDWIDTHS u l-qsim tal-qasam tal-wisa 'fissa.

*

Il-firxa PROCINFO mhix disponibbli.

*

L-użu ta ' RS bħala espressjoni regolari.

*

L-ismijiet speċjali tal-fajl disponibbli għad-direzzjoni mill-ġdid tal-I / O mhumiex rikonoxxuti.

*

L-operatur u | għall-ħolqien ta 'ko-proċessi.

*

Il-ħila li jinqasam karattri individwali billi tintuża s-sekwenza nulla bħala l-valur ta ' FS , u bħala t-tielet argument li għandu jinqasam () .

*

It-tieni argument fakultattiv għall-funzjoni qrib () .

*

It-tielet argument fakultattiv għall-funzjoni match () .

*

Il-kapaċità li tuża speċifikaturi pożizzjonali bi printf u sprintf () .

*

L-użu ta ' tabella ta' tħassir biex tħassar il-kontenut kollu ta 'firxa.

*

L-użu ta ' nextfile li jabbanduna l-ipproċessar tal-fajl ta' input kurrenti.

*

The and () , asort () , bindtextdomain () , compl () , dcgettext () , gensub () , lshift () , mktime () , jew () , rshift () , strftime () , strtonum () , systime () u xor () .

*

Strings lokalizzabbli.

*

Żieda ta 'funzjonijiet ġodda integrati b'mod dinamiku mal-funzjoni ta' estensjoni () .

Il-ktieb AWK ma jiddefinix il-valur tar-ritorn tal-funzjoni qrib () . Gawk 's close () jirritorna l-valur minn fclose (3), jew pclose (3), meta jagħlaq fajl tal-ħruġ jew pajp, rispettivament. Jirritorna l-istatus tal-ħruġ tal-proċess meta jagħlaq il-pajp tal-input. Il-valur tar-ritorn huwa -1 jekk il-fajl, il-pajp jew il-proċess konġunt ma ġewx miftuħa b'rijorazzjoni mill-ġdid.

Meta gawk jiġi invokat bl-għażla tradizzjonali , jekk l-argument fs għall-għażla -F hu `` t '', allura FS huwa ssettjat fuq il-karattru tab. Innota li t-typing gawk -F \ t ... sempliċement jikkawża l-qoxra li tikkwota `` t, '', u ma tgħaddix `` \ t '' għall-għażla -F . Peress li dan huwa każ speċjali pjuttost ikrah, mhuwiex l-imġieba inadegwata. Din l-imġiba wkoll ma sseħħx jekk - ix-xejra ġiet speċifikata. Biex tikseb verament karattru tab bħala s-separatur tal-field, huwa aħjar li tuża kwotazzjonijiet singoli: gawk -F '\ t' ....

Ara kmandijiet oħra : stenna , lp , komplet , execv , getfacl , ioctl , uniq , rmmod , pvcreate , rsh , unix2dos , cal , fs , cd , iwpriv , swapon , autofs , jitkellmu , motd , free , lpr , execl , fdisk , fuq , min , iwconfig , ifconfig , vgdisplay , open , lsmod , ntohs , mailq , joqtlu , wtmp