Dysgwch Reoliad Linux - gawk

Enw

gawk - sganio patrwm a phrosesu iaith

Crynodeb

gawk [opsiynau arddull POSIX neu GNU] -ffeillen rhaglen-ffeil [ - ] ffeil ...
gawk [POSIX neu opsiynau arddull GNU] [ - ] ffeil testun-rhaglen ...

pgawk [opsiynau arddull POSIX neu GNU] -ffeil rhaglen-ffeil [ - ] ffeil ...
pgawk [opsiynau arddull POSIX neu GNU] [ - ] ffeil testun-rhaglen ...

Disgrifiad

Gawk yw gweithredu rhaglen rhaglennu AWK y GNU . Mae'n cydymffurfio â diffiniad yr iaith yn Safon Iaith a Defnyddiau POSIX 1003.2. Mae'r fersiwn hon yn ei dro yn seiliedig ar y disgrifiad yn The AWK Programming Language , gan Aho, Kernighan, a Weinberger, gyda'r nodweddion ychwanegol a geir yn fersiwn System V Release 4 o UNIX awk . Mae Gawk hefyd yn darparu estyniadau awk yn Bell Labordai mwy diweddar, a nifer o estyniadau GNU-benodol.

Pgawk yw'r fersiwn proffilio o gawk . Mae'n gyffelyb ym mhob ffordd i gawk , heblaw bod y rhaglenni'n rhedeg yn arafach, ac mae'n awtomatig yn cynhyrchu proffil gweithredu yn y ffeil awkprof.out pan fydd yn digwydd. Gweler yr opsiwn --profile , isod.

Mae'r llinell orchymyn yn cynnwys opsiynau i gawk ei hun, testun y rhaglen AWK (os na chaiff ei gyflenwi trwy'r opsiynau -f neu - ffillen ), a gwerthoedd i'w darparu yn y newidynnau AWK ARGV a ARGV a ddiffiniwyd ymlaen llaw.

Fformat Opsiwn

Efallai y bydd opsiynau Gawk naill ai'n opsiynau POSIX un llythyr traddodiadol, neu opsiynau hir arddull GNU. Dechreuodd opsiynau POSIX gydag un `` - '', tra bod dewisiadau hir yn dechrau gyda `` - ''. Darperir opsiynau hir ar gyfer nodweddion GNU-benodol ac ar gyfer nodweddion gorfodol POSIX.

Yn dilyn safon POSIX, caiff opsiynau gawk -specific eu cyflenwi trwy ddadleuon i'r opsiwn -W . Gellir darparu opsiynau lluosog -W Mae gan bob opsiwn -W opsiwn hir cyfatebol, fel y manylir isod. Mae dadleuon i opsiynau hir naill ai wedi ymuno â'r opsiwn gan = sign, heb unrhyw leoedd ymyrryd, neu efallai y byddant yn cael eu darparu yn y ddadl llinell gorchymyn nesaf. Gellir crynhoi opsiynau hir, cyhyd â bod y talfyriad yn parhau'n unigryw.

Dewisiadau

Mae Gawk yn derbyn yr opsiynau canlynol, wedi'u rhestru yn nhrefn yr wyddor.

-F ff

- gwahanydd maes ffs Defnyddiwch fs ar gyfer y gwahanydd maes mewnbwn (gwerth y newidyn rhagnodedig FS ).

-v var = val

--gynnwch var = val Aseinwch y gwerth val i'r var variable, cyn i'r rhaglen ddechrau. Mae gwerthoedd amrywiol o'r fath ar gael i floc BEGIN o raglen AWK.

-f rhaglen-ffeil

- ffeil rhaglen-ffeil Darllenwch y ffynhonnell rhaglen AWK o'r ffeil rhaglen-ffeil , yn hytrach nag o'r ddadl llinell orchymyn cyntaf. Gellir defnyddio opsiynau lluosog -f (neu -file ).

-mn NNN

-mr NNN Gosodwch wahanol derfynau cof at y gwerth NNN . Mae'r faner f yn gosod y nifer uchaf o feysydd, ac mae'r baner r yn gosod y maint uchafswm o gofnod. Mae'r ddau faner a'r opsiwn -m hyn yn dod o fersiwn ymchwil Bell Laboratories o UNIX awk . Maent yn cael eu hanwybyddu gan gawk , gan nad oes gan gawk unrhyw derfynau wedi'u diffinio ymlaen llaw.

-W cydweddydd

-W traddodiadol

--compat

- Rhedeg canolradd mewn modd cydweddu . Yn y modd cydweddu, mae gawk yn ymddwyn yn union i UNIX awk ; ni chydnabyddir unrhyw un o'r estyniadau GNU-benodol. Dewisir y defnydd o --raddol dros ffurfiau eraill yr opsiwn hwn. Gweler GNU EXTENSIONS , isod, am ragor o wybodaeth.

-W copyleft

-W hawlfraint

--copyleft

--copyright Argraffwch fersiwn fer y neges wybodaeth hawlfraint GNU ar yr allbwn safonol ac ymadael yn llwyddiannus.

-W dump-variables [ = ffeil ]

--dump-variables [ = file ] Argraffwch restr ddidoli o newidynnau byd-eang, eu mathau a'u gwerthoedd terfynol i'w ffeilio . Os na ddarperir ffeil , mae gawk yn defnyddio ffeil awkvars.out o'r enw yn y cyfeiriadur cyfredol.

Mae cael rhestr o'r holl newidynnau byd-eang yn ffordd dda o edrych am wallau teipograffyddol yn eich rhaglenni. Byddech hefyd yn defnyddio'r opsiwn hwn os oes gennych raglen fawr gyda llawer o swyddogaethau, a'ch bod am sicrhau nad yw eich swyddogaethau yn defnyddio newidynnau byd-eang yn anfwriadol yr ydych yn bwriadu eu bod yn lleol. (Mae hwn yn gamgymeriad arbennig o hawdd i'w wneud gydag enwau syml amrywiol fel i , j , ac yn y blaen.)

-W helpu

-W defnydd

- help

--usage Argraffwch grynodeb cymharol fyr o'r opsiynau sydd ar gael ar yr allbwn safonol. (Yn ôl y Safonau Codio GNU , mae'r opsiynau hyn yn achosi ymadawiad uniongyrchol, llwyddiannus.)

-W lint [ = marwolaeth ]

--lint [ = angheuol ] Rhoi rhybuddion am ddeunyddiau sy'n amheus neu nad ydynt yn rhai cludadwy i weithrediadau eraillAWK. Gyda dadl opsiynol o rybuddion marwol , mae rhybuddion lint yn dod yn wallau angheuol. Gall hyn fod yn ddwys, ond bydd ei ddefnydd yn sicr yn annog datblygu rhaglenni AWK lanach.

-W lint-hen

--lint-old Darparu rhybuddion am ddeunyddiau nad ydynt yn gludadwy i'r fersiwn wreiddiol o Unix awk .

-W gen-po

--gen-po Sganiwch a parsewch y rhaglen AWK, a chreu ffeil fformat GNU .po ar allbwn safonol gyda chofnodion ar gyfer pob llinyn lleoladwy yn y rhaglen. Ni weithredir y rhaglen ei hun. Gweler y dosbarthiad GNT gettext am fwy o wybodaeth ar ffeiliau .po .

-W heb ddata degol

--non-degol-data Adnabod gwerthoedd octal a hecsadegol mewn data mewnbwn. Defnyddiwch yr opsiwn hwn gyda rhybudd mawr!

-W posix

--posix Mae hyn yn troi ar y modd cydnawsedd , gyda'r cyfyngiadau ychwanegol canlynol:

*

\ x Nid yw dilyniannau dianc yn cael eu cydnabod.

*

Dim ond gofod a thac sy'n gweithredu fel gwahanyddion caeau pan fo FS wedi'i osod i un lle, nid yw llinell newydd.

*

Ni allwch barhau llinellau ar ôl ? a :.

*

Nid yw'r func cyfystyr ar gyfer y swyddogaeth allweddair yn cael ei gydnabod.

*

Ni ellir defnyddio'r gweithredwyr ** a ** = yn lle ^ a ^ = .

*

Nid yw'r swyddogaeth fflush () ar gael.

-W profile [ = prof_file ]

--profile [ = prof_file ] Anfonwch ddata proffilio i prof_file . Mae'r rhagosodiad yn awkprof.out . Pan gaiff ei redeg gyda gawk , mae'r proffil yn fersiwn `` eithaf printiedig '' o'r rhaglen. Wrth redeg gyda pgawk , mae'r proffil yn cynnwys cyfrifau gweithredu pob datganiad yn y rhaglen yn yr ymyl chwith a chyfrifau ffōn swyddogaethol ar gyfer pob swyddogaeth a ddiffiniwyd gan ddefnyddiwr.

-B ail-egwyl

- rhyngweithiad Galluogi'r defnydd o ymadroddion rhyngweithiol mewn cydweddu mynegiant rheolaidd (gweler yr Ymadroddion Rheolaidd , isod). Nid oedd ymadroddion cyflym ar gael yn draddodiadol yn yr iaith AWK. Ychwanegodd y safon POSIX iddynt, i wneud awk ac egrep yn gyson â'i gilydd. Fodd bynnag, mae'n debyg y bydd eu defnydd yn torri hen raglenni AWK, felly mae gawk ond yn eu darparu os gofynnir amdanynt gyda'r opsiwn hwn, neu pan fydd --posix wedi'i bennu.

-W ffynhonnell rhaglen-destun

--source program-text Defnyddiwch raglen-destun fel cod ffynhonnell rhaglen AWK. Mae'r opsiwn hwn yn caniatáu rhyngweithio hawdd ar swyddogaethau llyfrgell (a ddefnyddir trwy'r opsiynau -f a --file ) gyda'r cod ffynhonnell wedi'i gofnodi ar y llinell orchymyn. Fe'i bwriedir yn bennaf ar gyfer rhaglenni AWK canolig i fawr a ddefnyddir mewn sgriptiau cregyn.

-W fersiwn

--version Gwybodaeth fersiwn argraffu ar gyfer y copi arbennig hwn o'r gawk ar yr allbwn safonol. Mae hyn yn ddefnyddiol yn bennaf am wybod a yw'r copi cyfredol o gawk ar eich system yn gyfoes o ran beth bynnag y mae'r Sefydliad Meddalwedd Am Ddim yn ei ddosbarthu. Mae hyn hefyd yn ddefnyddiol wrth adrodd am fygiau. (Yn ôl y Safonau Codio GNU , mae'r opsiynau hyn yn achosi ymadawiad uniongyrchol, llwyddiannus.)

- Llofnodwch ddiwedd yr opsiynau. Mae hyn yn ddefnyddiol i ganiatáu dadleuon pellach i'r rhaglen AWK ei hun i ddechrau gyda `` - ''. Mae hyn yn bennaf ar gyfer cysondeb â'r confensiwn parsing dadl a ddefnyddir gan y rhan fwyaf o raglenni POSIX eraill.

Mewn modd cydweddu, mae unrhyw opsiynau eraill wedi'u nodi fel rhai annilys, ond fe'u hanwybyddir fel arall. Mewn gweithrediad arferol, ar yr amod bod testun y rhaglen wedi'i chyflenwi, caiff opsiynau anhysbys eu trosglwyddo i'r rhaglen AWK yn y gyfres ARGV i'w prosesu. Mae hyn yn arbennig o ddefnyddiol ar gyfer cynnal rhaglenni AWK trwy'r mecanwaith '`#!' 'Cyfieithydd gweithredadwy.

EITHRIFIAD RHAGLEN AWK

Mae rhaglen AWK yn cynnwys dilyniant o ddatganiadau gweithredu patrwm a diffiniadau swyddogaeth opsiynol.

patrwm { datganiadau gweithredu }

enw swyddogaeth ( rhestr paramedr ) { datganiadau }

Yn gyntaf, mae Gawk yn darllen ffynhonnell y rhaglen o ffeiliau'r rhaglen os yw'n cael ei bennu, o ddadleuon i --source , neu o'r ddadl an-opsiwn cyntaf ar y llinell orchymyn. Gellir defnyddio'r opsiynau -f a --source sawl gwaith ar y llinell orchymyn. Mae Gawk yn darllen testun y rhaglen fel pe bai holl destunau ffynhonnell y rhaglen a'r llinell orchymyn wedi eu concatenated at ei gilydd. Mae hyn yn ddefnyddiol ar gyfer adeiladu llyfrgelloedd o swyddogaethau AWK, heb orfod eu cynnwys ym mhob rhaglen AWK newydd sy'n eu defnyddio. Mae hefyd yn darparu'r gallu i gymysgu swyddogaethau llyfrgell gyda rhaglenni llinell orchymyn.

Mae'r newidyn amgylchedd AWKPATH yn pennu llwybr chwilio i'w ddefnyddio wrth ddod o hyd i ffeiliau ffynhonnell a enwir gyda'r opsiwn -f . Os nad yw'r newidyn hwn yn bodoli, mae'r llwybr rhagosodedig yn ".: / Usr / local / share / awk" . (Gall y cyfeirlyfr gwirioneddol amrywio, yn dibynnu ar sut y cafodd gawk ei adeiladu a'i osod.) Os yw enw ffeil a roddir i'r opsiwn -f yn cynnwys cymeriad `` / '', ni chaiff chwiliad llwybr ei berfformio.

Mae Gawk yn ymgymryd â rhaglenni AWK yn y drefn ganlynol. Yn gyntaf, mae pob aseiniad amrywiol a bennir trwy'r opsiwn -v yn cael ei berfformio. Nesaf, gawk yn llunio'r rhaglen i mewn i ffurflen fewnol. Yna, mae gawk yn ymgymryd â'r cod yn y bloc (au) BEGIN (os oes un), ac wedyn yn mynd i ddarllen pob ffeil a enwir yn y gyfres ARGV . Os nad oes ffeiliau wedi'u henwi ar y llinell orchymyn, mae gawk yn darllen y mewnbwn safonol.

Os oes enw ffeil ar y llinell orchymyn ar y ffurflen var = val, caiff ei drin fel aseiniad amrywiol. Rhoddir y gwerth val at y var amrywiol. (Mae hyn yn digwydd ar ôl i unrhyw floc (au) BEGIN gael eu rhedeg.) Mae aseiniad newidyn llinell gorchymyn yn fwyaf defnyddiol ar gyfer dynodi gwerthoedd i'r newidynnau a ddefnyddir gan AWK i reoli sut mae mewnbwn yn cael ei dorri i mewn i feysydd a chofnodion. Mae hefyd yn ddefnyddiol i reoli'r wladwriaeth os oes angen pasio lluosog dros un ffeil ddata.

Os yw gwerth elfen benodol o ARGV yn wag ( "" ), gawk sgipiau drosto.

Ar gyfer pob cofnod yn y mewnbwn, profion gawk i weld a yw'n cyfateb i unrhyw batrwm yn y rhaglen AWK. Ar gyfer pob patrwm y mae'r record yn cyfateb, gweithredir y camau cysylltiedig. Caiff y patrymau eu profi yn y drefn y maent yn digwydd yn y rhaglen.

Yn olaf, ar ôl i'r holl fewnbwn gael ei ddiddymu, mae gawk yn gwneud y cod yn y bloc (au) END (os o gwbl).

Amrywiol, Cofnodion, a Meysydd

Mae newidynnau AWK yn ddeinamig; maent yn dod i fodolaeth pan gaiff eu defnyddio gyntaf. Mae eu gwerthoedd naill ai'n rhifau neu llinynnau pwynt symudol, neu'r ddau, yn dibynnu ar sut y'u defnyddir. Mae gan AWK hefyd arrays un dimensiwn; gellir symleiddio arrays gyda lluosogau dimensiynau. Mae amryw newidynnau a ddiffiniwyd ymlaen llaw wedi'u gosod wrth i raglen barhau; bydd y rhain yn cael eu disgrifio yn ôl yr angen a'u crynhoi isod.

Cofnodion

Fel rheol, mae cofnodion yn cael eu gwahanu gan gymeriadau newydd. Gallwch chi reoli sut mae cofnodion yn cael eu gwahanu trwy neilltuo gwerthoedd i'r RS newidiol a adeiledig. Os yw RS yn un cymeriad unigol, mae'r cymeriad hwnnw'n gwahanu cofnodion. Fel arall, mae RS yn fynegiant rheolaidd. Mae'r testun yn y mewnbwn sy'n cyd-fynd â'r mynegiant rheolaidd hwn yn gwahanu'r cofnod. Fodd bynnag, mewn modd cydweddu, dim ond cymeriad cyntaf ei werth llinynnol sy'n cael ei ddefnyddio ar gyfer gwahanu cofnodion. Os gosodir y llinyn null ar RS , yna caiff y cofnodion eu gwahanu gan linellau gwag. Pan osodir RS i'r llinyn null, mae'r cymeriad llinell newydd bob amser yn gweithredu fel gwahanydd maes, yn ogystal â pha bynnag werth sydd gan FS .

Caeau

Wrth i bob cofnod mewnbwn gael ei ddarllen, mae gawk yn rhannu'r cofnod i gaeau , gan ddefnyddio gwerth y newidydd FS fel y gwahanydd maes. Os yw FS yn un cymeriad, mae caeau wedi'u gwahanu gan y cymeriad hwnnw. Os FS yw'r llinyn null, yna bydd pob cymeriad unigol yn dod yn faes ar wahân. Fel arall, disgwylir i FS fod yn fynegiad rheolaidd llawn. Yn yr achos arbennig bod FS yn un lle, mae caeau yn cael eu gwahanu gan redeg o leoedd a / neu tabiau a / neu linellau newydd. (Ond gweler y drafodaeth --posix , isod). NODYN: Mae gwerth IGNORECASE (gweler isod) hefyd yn effeithio ar sut mae meysydd yn cael eu rhannu pan fydd FS yn fynegiant rheolaidd, a sut mae cofnodion yn cael eu gwahanu pan fo mynegiant rheolaidd yn RS .

Os yw'r newidyn FIELDWIDTHS wedi'i osod ar restr o rifau ar wahân i le, disgwylir i bob maes fod â lled sefydlog, ac mae gawk yn rhannu'r cofnod gan ddefnyddio'r lled penodedig. Anwybyddir gwerth FS . Mae awdurdodi gwerth newydd i FS yn goresgyn y defnydd o FIELDWIDTHS , ac yn adfer yr ymddygiad rhagosodedig.

Gellir cyfeirio pob maes yn y cofnod mewnbwn gan ei safle, $ 1 , $ 2 , ac yn y blaen. $ 0 yw'r cofnod cyfan. Nid oes angen cyfeirio meysydd at feysydd:

n = 5
argraffu $ n

yn argraffu'r pumed maes yn y cofnod mewnbwn.

Mae'r NF newidiol wedi'i osod i gyfanswm nifer y caeau yn y cofnod mewnbwn.

Mae cyfeiriadau at feysydd nad ydynt yn bodoli (hy meysydd ar ôl $ NF ) yn cynhyrchu'r llinyn null. Fodd bynnag, mae aseinio i faes nad yw'n bodoli (ee, $ (NF + 2) = 5 ) yn cynyddu gwerth NF , yn creu unrhyw gaeau ymyrryd gyda'r llinyn null fel eu gwerth, ac yn achosi gwerth $ 0 i gael ei argymell, gyda y caeau yn cael eu gwahanu gan werth OFS . Mae cyfeiriadau at feysydd rhifau negyddol yn achosi gwall marwol. Mae datrys NF yn achosi gwerthoedd caeau y tu hwnt i'r gwerth newydd i gael eu colli, a gwerth $ 0 i'w adfywio, gyda'r gwerth yn cael eu gwahanu gan werth OFS .

Mae awdurdodi gwerth i faes sy'n bodoli eisoes yn golygu bod y cofnod cyfan yn cael ei ailadeiladu pan gyfeirir at $ 0 . Yn yr un modd, mae aseinio gwerth i $ 0 yn golygu bod y cofnod yn cael ei rannu, gan greu gwerthoedd newydd ar gyfer y meysydd.

Amrywioliadau Adeiledig

Y newidynnau a adeiladwyd gan Gawk yw:

ARGC

Nifer y dadleuon llinell gorchymyn (nid yw'n cynnwys opsiynau i gawk , neu ffynhonnell y rhaglen).

ARGIND

Mae'r mynegai yn ARGV o'r ffeil gyfredol yn cael ei phrosesu.

ARGV

Cyfres o ddadleuon llinell orchymyn. Mae'r gyfres yn cael ei mynegeio o 0 i ARGC - 1. Gall newid yn arwyddocaol cynnwys ARGV reoli'r ffeiliau a ddefnyddir ar gyfer data.

BINMODE

Ar systemau nad ydynt yn POSIX, mae'n pennu defnydd o ddull `` deuaidd 'ar gyfer pob ffeil I / O. Mae gwerthoedd rhifol 1, 2, neu 3, yn nodi bod ffeiliau mewnbwn, ffeiliau allbwn, neu bob ffeil, yn y drefn honno, yn defnyddio I / O ddeuaidd. Mae gwerthoedd llinynnol "r" , neu "w" yn nodi bod ffeiliau mewnbwn, neu ffeiliau allbwn, yn y drefn honno, yn defnyddio I / O ddeuaidd. Mae gwerthoedd llinynnol "rw" neu "wr" yn nodi y dylai'r holl ffeiliau ddefnyddio I / O ddeuaidd. Mae unrhyw werth llinynnol arall yn cael ei drin fel "rw" , ond mae'n creu neges rhybuddio.

CONVFMT

Y fformat trosi ar gyfer rhifau, "% .6g" , yn ddiofyn.

AMGYLCHEDD

Cyfres sy'n cynnwys gwerthoedd yr amgylchedd presennol. Mae'r amrywiaeth yn cael ei mynegeio gan y newidynnau amgylcheddol, pob elfen yw gwerth y newidyn hwnnw (ee, ENVIRON ["CARTREF"] fod yn gartref / arnold ). Nid yw newid y gronfa hon yn effeithio ar yr amgylchedd a welir gan raglenni a gawk graean drwy ailgyfeirio neu'r swyddogaeth system () .

ERRNO

Os yw gwall system yn digwydd naill ai'n ailgyfeirio ar gyfer llinell llinellau , yn ystod darllen ar gyfer llinell llinyn , neu yn ystod cau () , yna bydd ERRNO yn cynnwys llinyn sy'n disgrifio'r gwall. Mae'r gwerth yn ddarostyngedig i gyfieithiad mewn lleoliadau nad ydynt yn Saesneg.

FIELDWIDTHS

Rhestr gwahanu o ofod gwyn o ddyfroedd maes. Pan osodir, mae gawk yn parsi'r mewnbwn i gaeau lled sefydlog, yn hytrach na defnyddio gwerth y newidydd FS fel y gwahanydd maes.

FILENAME

Enw'r ffeil fewnbwn gyfredol. Os nad oes ffeiliau wedi'u nodi ar y llinell orchymyn, mae gwerth FILENAME yn `` - ''. Fodd bynnag, nid yw FILENAME wedi'i ddiffinio y tu mewn i'r blwch BEGIN (oni bai ei fod wedi'i osod gan linell gyswllt ).

FNR

Y rhif cofnod mewnbwn yn y ffeil fewnbwn gyfredol.

FS

Y gwahanydd maes mewnbwn, gofod yn ddiofyn. Gweler Caeau , uchod.

IGNORECASE

Yn rheoli sensitifrwydd achos yr holl ymadroddion rheolaidd a gweithrediadau llinynnol. Os oes gan IGNORECASE werth di-sero, yna cymariaethau llinynnau a chyfateb patrwm mewn rheolau, rhannu rhannau gyda FS , cofnodi gwahanu gyda RS , cydweddu mynegiant rheolaidd gyda ~ a ! ~ , A'r gensub () , gsub () , mynegai () , cydweddu () , rhannu () , ac is-(a) mewnosodwyd pob achos yn anwybyddu achos wrth wneud gweithrediadau mynegiant rheolaidd. NODYN: Nid yw subscripting array yn cael ei effeithio, ac nid yw'r swyddogaeth asort () .

Felly, os nad yw IGNORECASE yn gyfartal â sero, / aB / yn cydweddu pob un o'r tannau "ab" , "aB" , "Ab" , a "AB" . Yn yr un modd â'r holl newidynnau AWK, mae gwerth cychwynnol IGNORECASE yn sero, felly mae pob gweithrediad mynegiant rheolaidd a llinyn fel arfer yn sensitif i achosion. O dan Unix, defnyddir y set gymeriad ISO 8859-1 Lladin-1 llawn wrth anwybyddu'r achos.

LINT

Yn darparu rheolaeth ddeinamig o'r opsiwn --lint o fewn rhaglen AWK. Pan yn wir, mae gawk yn argraffu rhybuddion lint. Pan fydd yn ffug, nid yw'n. Pan roddir gwerth y llinyn "angheuol" , mae rhybuddion lint yn dod yn wallau angheuol, yn union fel --lint = angheuol . Unrhyw werth gwirioneddol arall yn unig sy'n argraffu rhybuddion.

NF

Nifer y caeau yn y cofnod mewnbwn cyfredol.

NR

Cyfanswm nifer y cofnodion mewnbwn a welwyd hyd yma.

OFMT

Y fformat allbwn ar gyfer rhifau, "% .6g" , yn ddiofyn.

OFS

Y gwahanydd maes allbwn, lle yn ddiofyn.

ORS

Y gwahanydd cofnod allbwn, yn ddiofyn llinell newydd.

PROCINFO

Mae elfennau'r gronfa hon yn darparu mynediad at wybodaeth am y rhaglen AWK sy'n rhedeg. Ar rai systemau, efallai y bydd elfennau yn y set, "group1" trwy "group n " ar gyfer rhai n , sef nifer y grwpiau atodol y mae gan y broses. Defnyddiwch y gweithredwr i brofi ar gyfer yr elfennau hyn. Mae'n sicr y bydd yr elfennau canlynol ar gael:

PROCINFO ["egid"]

gwerth y galwad system getegid (2).

PROCINFO ["drwg"]

gwerth y galwad system glud (2).

PROCINFO ["FS"]

"FS" os yw gwahanu maes gyda FS mewn gwirionedd, neu "FIELDWIDTHS" os yw rhannu'r cae gyda FIELDWIDTHS yn effeithiol.

PROCINFO ["gid"]

gwerth galwad y system getgid (2).

PROCINFO ["pgrpid"]

ID grŵp y broses o'r broses gyfredol.

PROCINFO ["pid"]

ID y broses o'r broses gyfredol.

PROCINFO ["ppid"]

ID rhiant proses y broses gyfredol.

PROCINFO ["uid"]

gwerth y galwad system getuid (2).

RS

Y gwahaniad record mewnbwn, yn ddiofyn llinell newydd.

RT

Terfynydd y cofnod. Mae Gawk yn gosod RT i'r testun mewnbwn sy'n cyfateb i'r cymeriad neu'r mynegiant rheolaidd a nodwyd gan RS .

RSTART

Y mynegai o'r cymeriad cyntaf yn cyfatebol â gêm () ; 0 os nad oes cyfateb. (Mae hyn yn awgrymu bod mynegeion cymeriad yn dechrau ar un.)

RÔL

Hyd y llinyn yn cyfateb â gêm () ; -1 os nad oes cyfateb.

SUBSEP

Defnyddiwyd y cymeriad i wahanu tanysgrifiadau lluosog mewn elfennau ar ffurf, yn ddiofyn "\ 034" .

TEXTDOMAIN

Maes testun y rhaglen AWK; a ddefnyddiwyd i ddod o hyd i'r cyfieithiadau lleol ar gyfer llwybrau'r rhaglen.

Arrays

Tanysgrifir arraysau gyda mynegiant rhwng cromfachau sgwâr ( [ a ] ). Os yw'r mynegiant yn restr mynegiant ( expr , expr ...) yna mae'r gyfres gronfa yn llinyn sy'n cynnwys concatenation gwerth (llinyn) pob mynegiant, wedi'i wahanu gan werth y newidyn SUBSEP . Defnyddir y cyfleuster hwn i efelychu lluosog arrays â dimensiwn. Er enghraifft:

i = "A"; j = "B"; k = "C"
x [i, j, k] = "helo, byd \ n"

yn aseinio'r llinyn "hello, world \ n" at elfen y set x sy'n cael ei mynegeio gan y llinyn "A \ 034B \ 034C" . Mae'r holl arrays yn AWK yn gydgysylltiol, hy wedi'u mynegeio gan werthoedd llinyn.

Gellir defnyddio'r gweithredwr arbennig mewn a oes datganiad tra neu er mwyn gweld a oes gan amrywiaeth fynegai sy'n cynnwys gwerth penodol.

os yw (gwerthfawrogi ar ffurf) print print [val]

Os oes gan y setysgrifau lluosog, defnyddiwch (i, j) mewn cyfres .

Mae'n bosibl y bydd yr adeilad mewn adeilad hefyd yn cael ei ddefnyddio mewn dolen i ymestyn dros holl elfennau llu.

Gellir dileu elfen o gyfres gan ddefnyddio'r datganiad dileu . Efallai y bydd y datganiad dileu hefyd yn cael ei ddefnyddio i ddileu cynnwys cyfan o gyfres, dim ond trwy bennu'r enw cyfres heb danysgrif.

Teipio a Throsi Amrywiol

Gall newidynnau a chaeau fod (rhifau symudol) niferoedd, neu llinynnau, neu'r ddau. Mae sut mae gwerth newidyn yn cael ei ddehongli yn dibynnu ar ei gyd-destun. Os caiff ei ddefnyddio mewn mynegiant rhifol, caiff ei drin fel rhif, os caiff ei ddefnyddio fel llinyn, caiff ei drin fel llinyn.

I orfodi newidyn i'w drin fel rhif, ychwanegwch 0 iddo; i orfodi i gael ei drin fel llinyn, ei gysoni â'r llinyn null.

Pan mae'n rhaid trosi llinyn i rif, cyflawnir y trawsnewid gan ddefnyddio strtod (3). Mae nifer yn cael ei droi'n llinyn trwy ddefnyddio gwerth CONVFMT fel llinyn fformat ar gyfer sprintf (3), gyda gwerth rhifol y newidyn fel y ddadl. Fodd bynnag, er bod yr holl rifau yn AWK yn bwynt arnofio, mae gwerthoedd annatod bob amser yn cael eu trosi'n gyfanrif. Felly, rhoddwyd

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

mae gan y newidyn b gwerth llinyn o "12" ac nid "12.00" .

Mae Gawk yn perfformio cymariaethau fel a ganlyn: Os yw dau newidyn yn rhifol, caiff eu cymharu'n rhifol. Os yw un gwerth yn rhifol ac mae gan y llall werth llinyn sydd yn `string string ',' 'yna mae cymariaethau hefyd yn cael eu gwneud yn rhifol. Fel arall, mae'r gwerth rhifol yn cael ei drawsnewid i linyn a pherfformir cymhariaeth llinyn. Mae dwy linell yn cael eu cymharu, wrth gwrs, fel lllinynnau. Sylwch fod safon POSIX yn cymhwyso'r cysyniad o `string string 'ym mhobman, hyd yn oed i gyfyngiadau llinyn. Fodd bynnag, mae hyn yn amlwg yn anghywir, ac nid yw gawk yn gwneud hyn. (Yn ffodus, mae hyn wedi'i osod yn y fersiwn nesaf o'r safon.)

Sylwch nad yw rhwystrau llinyn, fel "57" , yn llinynnau rhifol, maent yn gyfyngiadau llinyn. Mae'r syniad o `` string rhifol '' yn berthnasol i gaeau, mewnbwn getline , FILENAME , elfennau ARGV , elfennau ENVIRON ac elfennau o gyfres a grëwyd gan ranniad () sy'n gyfres rhifol. Y syniad sylfaenol yw bod mewnbwn defnyddwyr , a dim ond mewnbwn defnyddwyr, sy'n edrych yn rhifol, y dylid eu trin fel hyn.

Mae newidynnau heb eu datrys yn meddu ar y gwerth rhifol 0 a'r gwerth llinyn "" (y rhif, neu wag, llinyn).

Cyfansoddion Octal a Hexadeximal

Gan ddechrau gyda fersiwn 3.1 o gawk, gallwch ddefnyddio cysondeb octal a hecsadegol C yn eich cod ffynhonnell rhaglen AWK. Er enghraifft, mae'r gwerth octal 011 yn hafal i degol 9 , ac mae'r gwerth hecsadegol 0x11 yn gyfartal â degol 17.

Cwnstabl Llinynnol

Cyfyngiadau o gymeriadau sydd wedi'u hamgįu rhwng dyfynbrisiau dwbl ( " ) yw cyfansoddion llinynnol yn AWK ( " ). O fewn lllinynnau, cydnabyddir rhai dilyniannau dianc , fel yn C. Mae rhain yn:

\\

Gwrthwynebiad llythrennol.

\ a

Y nodwedd `` rhybudd ''; fel arfer y cymeriad BEL ASCII.

\ b

backspace.

\ f

ffurf-fwydo.

\ n

lein newydd.

\ r

dychwelyd cerbyd.

\ t

tab llorweddol.

\ v

tab fertigol.

\ x hecsau

Y cymeriad a gynrychiolir gan y cyfres o ddigrifau hecsesimal yn dilyn \ x . Fel yn ANSIC, mae'r holl ddigidau hecsadegol canlynol yn cael eu hystyried yn rhan o'r dilyniant dianc. (Dylai'r nodwedd hon ddweud rhywbeth wrthym am ddylunio iaith gan bwyllgor.) Ee, "\ x1B" yw'r cymeriad ASCIIESC (dianc).

\ ddd

Y cymeriad a gynrychiolir gan y dilyniant 1-, 2-, neu 3-digid o ddigidiau octal. Ee, "\ 033" yw'r cymeriad ASCII ESC (dianc).

\ c

Y cymeriad llythrennol c .

Efallai y bydd y dilyniannau dianc hefyd yn cael eu defnyddio mewn mynegiadau cyson rheolaidd (ee, / [\ t \ f \ n \ r \ v] / yn cydweddu cymeriadau gofod gwyn).

Yn y modd cydweddu, caiff y cymeriadau a gynrychiolir gan ddilyniannau dianc octal a hecsadegol eu trin yn llythrennol pan gaiff eu defnyddio mewn cyfansoddion mynegiant rheolaidd. Felly, mae / a \ 52b / yn gyfwerth â / a \ * b / .

Patrymau a Chamau Gweithredu

Mae AWK yn iaith sy'n canolbwyntio ar linell. Daw'r patrwm yn gyntaf, ac yna'r camau. Amgaeir datganiadau gweithredu yn { a } . Naill ai efallai na fydd y patrwm ar goll, neu efallai na fydd y cam ar goll, ond wrth gwrs, nid y ddau. Os yw'r patrwm ar goll, gweithredir y gweithrediad ar gyfer pob cofnod o fewnbwn. Mae gweithredu ar goll yn gyfwerth â

{print}

sy'n argraffu'r cofnod cyfan.

Mae'r sylwadau'n dechrau gyda'r cymeriad `` # ', ac yn parhau tan ddiwedd y llinell. Gellir defnyddio llinellau gwag i wahanu datganiadau. Fel arfer, mae datganiad yn dod i ben gyda llinell newydd, fodd bynnag, nid yw hyn yn wir am linellau sy'n dod i ben yn ``, '', { , ? , : , && , neu || . Mae llinellau sy'n dod i ben yn eu gwneud neu hefyd mae eu datganiadau hefyd yn parhau'n awtomatig ar y llinell ganlynol. Mewn achosion eraill, gellir parhau i linell drwy ei ddileu gyda ', ac os felly bydd y llinell newydd yn cael ei anwybyddu.

Gellir gosod datganiadau lluosog ar un llinell trwy eu gwahanu gyda ``; ''. Mae hyn yn berthnasol i'r ddau ddatganiad o fewn rhan weithredu pâr patrwm-gweithredu (yr achos arferol), ac i'r datganiadau gweithredu patrwm eu hunain.

Patrymau

Gall patrymau AWK fod yn un o'r canlynol:

BEGIN DIWEDD / mynegiant rheolaidd / patrwm mynegiant perthynas a phatrwm patrwm || patrwm patrwm ? patrwm : patrwm ( patrwm ) ! patrwm patrwm1 , patrwm2

Mae BEGIN a END yn ddau fath arbennig o batrymau nad ydynt yn cael eu profi yn erbyn y mewnbwn. Mae rhannau gweithredu pob patrwm BEGIN wedi'u cyfuno fel pe bai'r holl ddatganiadau wedi'u hysgrifennu mewn un bloc BEGIN . Fe'u gweithredir cyn darllen unrhyw un o'r mewnbwn. Yn yr un modd, mae'r holl flociau END wedi'u cyfuno, a'u gweithredu pan fydd yr holl fewnbwn wedi'i ddileu (neu pan fydd datganiad allanfa yn cael ei weithredu). Ni ellir cyfuno patrymau BEGIN a DIWEDD â phatrymau eraill mewn ymadroddion patrwm. Ni all patrymau BEGIN a END fod â rhannau gweithredu ar goll.

Ar gyfer mynegiant / patrymau rheolaidd , gweithredir y datganiad cysylltiedig ar gyfer pob cofnod mewnbwn sy'n cydweddu â'r mynegiant rheolaidd. Mae'r ymadroddion rheolaidd yr un fath â'r rhai sydd mewn egrep (1), ac fe'u crynhoir isod.

Gall mynegiant perthynol ddefnyddio unrhyw un o'r gweithredwyr a ddiffinnir isod yn yr adran ar gamau gweithredu. Mae'r rhain yn gyffredinol yn profi a yw meysydd penodol yn cyfateb i ymadroddion rheolaidd.

Y && , || , a ! mae gweithredwyr yn rhesymegol AC, yn rhesymegol NEU, ac yn rhesymegol NID, yn ôl eu trefn, fel yn C. Maent yn gwneud gwerthusiad byr-gylched, hefyd fel yn C, ac fe'u defnyddir ar gyfer cyfuno ymadroddion patrwm mwy cyntefig. Fel yn y rhan fwyaf o ieithoedd, gellir defnyddio braenau i newid trefn gwerthuso.

Mae'r gweithredwr : fel yr un gweithredwr yn C. Os yw'r patrwm cyntaf yn wir, yna'r patrwm a ddefnyddir ar gyfer profi yw'r ail batrwm, neu fel arall y trydydd. Dim ond un o'r ail a'r trydydd patrwm sy'n cael ei werthuso.

Gelwir patrwm1 , ffurf patrwm2 mynegiant yn batrwm ystod . Mae'n cyfateb i bob cofnod mewnbynnu gan ddechrau gyda chofnod sy'n cydweddu patrwm1 , a pharhau hyd nes y cofnod sy'n cydweddu patrwm2 , yn gynhwysol. Nid yw'n cyfuno ag unrhyw fath arall o fynegiant patrwm.

Mynegiadau Rheolaidd

Ymadroddion rheolaidd yw'r math estynedig a geir mewn egrep . Maent yn cynnwys cymeriadau fel a ganlyn:

c

yn cydweddu â'r meth-nodwedd c .

\ c

yn cyfateb i'r cymeriad llythrennol c .

.

yn cyfateb i unrhyw gymeriad gan gynnwys llinell newydd.

^

yn cyfateb i ddechrau llinyn.

$

yn cyfateb i ddiwedd llinyn.

[ abc ... ]

cymeriad, yn cyfateb i unrhyw un o'r cymeriadau abc ....

[^ abc ... ]

rhestr cymeriad wedi'i negyddu, yn cyfateb i unrhyw gymeriad ac eithrio abc ....

r1 | r2

eiliad: gêmu naill ai r1 neu r2 .

r1r2

concatenation: gemau r1 , ac yna r2 .

r +

yn cyfateb i un neu fwy o r .

r *

yn cyd-fynd â sero neu ra r .

r ?

yn cyfateb i sero neu un r .

( r )

grwpio: cyfateb r .

r { n }

r { n ,}

r { n , m } Mae un neu ddau rif y tu mewn braces yn dynodi mynegiant cyfwng . Os oes un rhif yn y braces, caiff y mynegiant rheolaidd blaenorol ei ailadrodd n weithiau. Os oes dau rif wedi eu gwahanu gan goma, caiff a r ei ailadrodd n i m weithiau. Os oes un rhif wedi'i ddilyn gan goma, yna caiff r ei ailadrodd o leiaf n gwaith.

Dim ond os yw naill ai --posix neu --re-interval wedi ei bennu ar y llinell orchymyn.

\ y

yn cydweddu â'r llinyn gwag ar ddechrau neu ddiwedd gair.

\ B

yn cyfateb i'r llinyn gwag o fewn gair.

\ <

yn cyfateb â'r llinyn gwag ar ddechrau gair.

\>

yn cyfateb â'r llinyn gwag ar ddiwedd gair.

\ w

yn cyfateb i unrhyw gymeriad geiriol (llythyr, digid, neu danysgrifio).

\ W

yn cyfateb i unrhyw gymeriad nad yw'n gyfansoddol geiriau.

\ `

yn cydweddu â'r llinyn gwag ar ddechrau clustog (llinyn).

\ '

yn cydweddu â'r llinyn gwag ar ddiwedd clustog.

Mae'r dilyniannau dianc sy'n ddilys mewn cysonion llinynnol (gweler isod) hefyd yn ddilys mewn mynegiadau rheolaidd.

Mae dosbarthiadau cymeriad yn nodwedd newydd a gyflwynir yn safon POSIX. Mae nod cymeriad yn nodiant arbennig ar gyfer disgrifio rhestrau o gymeriadau sydd â phriodoledd penodol, ond lle gall y cymeriadau gwirioneddol eu hunain amrywio o wlad i wlad a / neu o gymeriad a osodir i set cymeriad. Er enghraifft, mae'r syniad o beth yw cymeriad alffabetig yn wahanol i UDA ac yn Ffrainc.

Mae dosbarth cymeriad yn ddilys yn unig mewn mynegiant rheolaidd o fewn cromfachau rhestr cymeriad. Mae dosbarthiadau cymeriad yn cynnwys [: , allweddair sy'n dynodi'r dosbarth, a :] . Y dosbarthiadau cymeriad a ddiffiniwyd gan y safon POSIX yw:

[: alnum:]

Cymeriadau alffumumerig.

[: alpha:]

Cymeriadau adferol.

[: wag:]

Cymeriadau gofod neu tab.

[: cntrl:]

Cymeriadau rheoli.

[: digid:]

Nodau rhifol.

[: graff:]

Cymeriadau sy'n amlwg ac yn weladwy. (Mae gofod yn argraffadwy, ond nid yw'n weladwy, tra bod y ddau ohonyn nhw).

[: isaf:]

Cymeriadau alffabetig achos is.

[: argraffu:]

Cymeriadau printiadwy (cymeriadau nad ydynt yn rheoli cymeriadau.)

[: punct:]

Cymeriadau atalnodi (cymeriadau nad ydynt yn llythyr, digidau, cymeriadau rheoli, neu gymeriadau gofod).

[: gofod:]

Cymeriadau gofod (fel gofod, tab, a ffurflen, i enwi ychydig).

[: uchaf:]

Cymeriadau alffabetig achos uchaf.

[: xdigit:]

Cymeriadau sy'n ddigrifau hecsadegol.

Er enghraifft, cyn y safon POSIX, i gyfateb cymeriadau alffaniwmerig, byddai'n rhaid ichi ysgrifennu / [A-Za-z0-9] / . Os oedd gan eich set gymeriad gymeriadau alfabetig eraill ynddo, ni fyddai hyn yn cyfateb iddynt, ac os yw eich cymeriad wedi'i osod yn wahanol i ASCII, efallai na fydd hyn yn cydweddu â'r cymeriadau alffaniwmerig ASCII hyd yn oed. Gyda dosbarthiadau cymeriad POSIX, gallwch ysgrifennu / [[: alnum:]] / , ac mae hyn yn cydweddu â'r cymeriadau alffabetig a rhifol yn eich set gymeriad.

Gall dwy ddilyniant arbennig ychwanegol ymddangos yn y rhestrau cymeriad. Mae'r rhain yn berthnasol i setiau cymeriad nad ydynt yn ASCII, a all gael symbolau sengl (a elwir yn elfennau coladu ) sy'n cael eu cynrychioli gyda mwy nag un cymeriad, yn ogystal â sawl cymeriad sy'n gyfwerth at ddibenion coladu neu ddidoli. (Ee, yn Ffrangeg, mae `` e 'plaen ac e `bentiog yn gyfwerth).

Cyfuno Symbolau

Mae symbol coladu yn elfen coladu aml-gymeriad a amgaeir yn [. a .] . Er enghraifft, os yw ch yn elfen coladu, yna [[.ch.]] Yw mynegiant rheolaidd sy'n cydweddu â'r elfen coladu hon, tra bod [ch] yn fynegiad rheolaidd sy'n cyfateb naill ai c neu h .

Dosbarthiadau Cyfartaledd

Mae dosbarth cyfatebol yn enw locale-benodol ar gyfer rhestr o gymeriadau sy'n gyfwerth. Mae'r enw wedi'i amgáu yn [= and =] . Er enghraifft, gellid defnyddio'r enw e i gynrychioli'r holl `` e, '' `` e ',' 'a `` e`.' 'Yn yr achos hwn, [[= e =]] yw mynegiant rheolaidd yn cyfateb ag unrhyw e , e ' , neu e` .

Mae'r nodweddion hyn yn werthfawr iawn mewn lleoliadau di-Saesneg. Mae'r swyddogaethau llyfrgell y mae gawk yn eu defnyddio ar gyfer cydweddu mynegiant rheolaidd ar hyn o bryd yn unig yn adnabod dosbarthiadau cymeriad POSIX; nid ydynt yn cydnabod coladu symbolau neu ddosbarthiadau cywerthedd.

Mae'r gweithredwyr \ y , \ B , \ < , \> , \ w , \ W , \ ` , a \ ' yn benodol i gawk ; maent yn estyniadau wedi'u seilio ar gyfleusterau yn llyfrgelloedd mynegiant rheolaidd GNU.

Mae'r gwahanol opsiynau llinell gorchymyn yn rheoli sut mae gawk yn dehongli cymeriadau mewn mynegiant rheolaidd.

Dim opsiynau

Yn yr achos diofyn, mae gawk yn darparu holl gyfleusterau ymadroddion rheolaidd POSIX a gweithredwyr mynegiant rheolaidd GNG a ddisgrifir uchod. Fodd bynnag, nid yw ymadroddion rhwng cyfnodau yn cael eu cefnogi.

--posix

Dim ond mynegiadau rheolaidd POSIX sy'n cael eu cefnogi, nid yw'r gweithredwyr GNU yn arbennig. (Ee, \ w yn cyfateb â llythrennol w ). Caniateir ymadroddion cyflym.

- canolradd

Mae mynegiadau traddodiadol Unix traddodiadol yn cael eu cyfateb. Nid yw'r gweithredwyr GNU yn arbennig, nid yw ymadroddion rhyngddynt ar gael, ac nid yw'r ddau ddosbarthiadau cymeriad POSIX ( [[: alnum:]] ac yn y blaen). Caiff y nodweddion a ddisgrifir gan ddilyniannau dianc wythiol a hecsadegol eu trin yn llythrennol, hyd yn oed os ydynt yn cynrychioli mynegwyr mynegiant rheolaidd.

- rhy hir

Rhowch ymadroddion rhyngddynt mewn mynegiadau cyson, hyd yn oed os yw --raddradd wedi cael ei ddarparu.

Camau gweithredu

Amgaeir datganiadau gweithredu mewn braces, { a } . Mae datganiadau gweithredu yn cynnwys yr aseiniadau arferol, amodol a rhagolygon a geir yn y rhan fwyaf o ieithoedd. Mae'r gweithredwyr, y datganiadau rheoli a'r datganiadau mewnbwn / allbwn sydd ar gael wedi'u patrwm ar ôl y rhai yn C.

Gweithredwyr

Y gweithredwyr yn AWK, er mwyn lleihau cynsail, yw

( ... )

Grwpio

$

Cyfeirnod maes.

++ -

Cynnydd a gostyngiad, y ddau ragddodiad a'r ôl-osodiad.

^

Gellir defnyddio eglurhad ( ** hefyd, a ** = ar gyfer y gweithredwr aseiniad).

+ -!

Unary plus, unary minus, a negation resymegol.

* /%

Lluosi, rhannu, a modiwlau.

+ -

Ychwanegiad a thynnu.

gofod

Cyfuniad llinynnol.

<>

<=> =

! = == Y gweithredwyr perthynol rheolaidd.

~! ~

Mynegiant rheolaidd yn cyd-fynd, yn cyd-fynd â'i gilydd. NODYN: Peidiwch â defnyddio mynegiant rheolaidd cyson ( / foo / ) ar ochr chwith ~ ~ neu ! ~ . Defnyddiwch un yn unig ar yr ochr dde. Mae gan yr ymadrodd / foo / ~ exp yr un ystyr â (($ 0 ~ / foo /) ~ exp ) . Nid yw hyn fel arfer yn fwriadol.

yn

Aelodaeth array

&&

A rhesymegol.

|

NEU Rhesymegol.

?:

Mynegiant amodol C. Mae gan y ffurflen hon expr1 ? expr2 : expr3 . Os yw expr1 yn wir, mae gwerth yr ymadrodd yn expr2 , fel arall mae'n expr3 . Dim ond un o expr2 ac expr3 yn cael ei werthuso.

= + = - =

* = / =% = ^ = Aseiniad. Cefnogir yr aseiniad absoliwt ( var = value ) a'r aseiniad gweithredwr (y ffurflenni eraill).

Datganiadau Rheoli

Mae'r datganiadau rheoli fel a ganlyn:

os datganiad ( amod ) datganiad [ arall ] tra bo datganiad ( cyflwr ) yn gwneud datganiad tra bod ( cyflwr ) ar gyfer ( expr1 ; expr2 ; expr3 ; expr3 ) datganiad ar gyfer seibiant datganiad ( amryw mewn ffurf ) parhau i ddileu amrywiaeth [ mynegai ] dileu allanfa array [ mynegiant ] { datganiadau }

Datganiadau I / O

Mae'r datganiadau mewnbwn / allbwn fel a ganlyn:

close ( ffeil [ , sut ]]

Ffeil, pibell neu gyd-broses gaeedig. Y dewisol y dylid ei ddefnyddio dim ond wrth gau un pen o bibell dwy ffordd i gyd-broses. Rhaid iddo fod yn werth llinynnol, naill ai "i" neu "o" .

leinin

Gosod $ 0 o'r cofnod mewnbwn nesaf; gosod NF , NR , FNR .

getline < ffeil

Gosod $ 0 o'r cofnod ffeil nesaf; gosod NF .

getline var

Gosodwch amryw o'r cofnod mewnbwn nesaf; gosod NR , FNR .

getline var < ffeil

Gosodwch amryw o'r record nesaf o ffeil .

gorchymyn | leinin [ var ]

Rhedeg gorchymyn pipio'r allbwn naill ai i $ 0 neu amrywio , fel uchod.

gorchymyn | & getline [ var ]

Rhowch orchymyn fel cyd-broses pipio'r allbwn naill ai i $ 0 neu amryw , fel uchod. Mae cyd-brosesau yn estyniad gawk .

nesaf

Stopiwch brosesu'r cofnod mewnbwn cyfredol. Mae'r cofnod mewnbwn nesaf yn cael ei ddarllen a throsglwyddir prosesu gyda'r patrwm cyntaf yn y rhaglen AWK. Os derbynnir diwedd y data mewnbwn, caiff y bloc (au) END , os o gwbl, eu gweithredu.

nesaffile

Stopiwch brosesu'r ffeil fewnbwn gyfredol. Daw'r cofnod mewnbwn nesaf a ddarllen o'r ffeil fewnbwn nesaf. Mae FILENAME a ARGIND yn cael eu diweddaru, mae FNR yn cael ei ailosod i 1, ac mae prosesu yn dechrau drosodd gyda'r patrwm cyntaf yn y rhaglen AWK. Os derbynnir diwedd y data mewnbwn, caiff y bloc (au) END , os o gwbl, eu gweithredu.

print

Argraffwch y cofnod cyfredol. Mae'r cofnod allbwn wedi'i derfynu gyda gwerth y newidyn ORS .

print expr-list

Argraffiadau. Mae pob mynegiant wedi'i wahanu gan werth y newidyn OFS . Mae'r cofnod allbwn wedi'i derfynu gyda gwerth y newidyn ORS .

print expr-list > ffeil

Argraffiadau mynegiadau ar ffeil . Mae pob mynegiant wedi'i wahanu gan werth y newidyn OFS . Mae'r cofnod allbwn wedi'i derfynu gyda gwerth y newidyn ORS .

printf fmt, expr-list

Fformat ac argraffu.

printf fmt, expr-list > ffeil

Fformat ac argraffu ar ffeil .

system ( cmd-linell )

Dilynwch y gorchymyn cmd-lein , a dychwelwch y statws gadael. (Efallai na fydd hyn ar gael ar systemau nad ydynt yn POSIX.)

fflush ( [ ffeil ] )

Defnyddiwch unrhyw byffrau sy'n gysylltiedig â'r ffeil allbwn agored neu ffeil bibell. Os yw'r ffeil ar goll, yna caiff yr allbwn safonol ei fflysio. Os yw'r ffeil yn y llinyn null, yna mae pob ffeil a phibellau allbwn agored yn cael eu gwisgo.

Caniateir ailgyfeiriadau allbwn ychwanegol ar gyfer print ac argraffu .

print ... >> ffeil

yn atodi'r allbwn i'r ffeil .

print ... | gorchymyn

yn ysgrifennu ar bibell.

print ... | & command

yn anfon data i gyd-broses.

Mae'r gorchymyn getline yn dychwelyd 0 ar ddiwedd ffeil a -1 ar gamgymeriad. Ar gwall, mae ERRNO yn cynnwys llinyn sy'n disgrifio'r broblem.

NODYN: Os ydych chi'n defnyddio pibell neu gyd-broses i gael llinell , neu o argraffu neu printf o fewn dolen, rhaid i chi ddefnyddio close () i greu enghreifftiau newydd o'r gorchymyn. Nid yw AWK yn cau pibellau na chyd-brosesau yn awtomatig pan fyddant yn dychwelyd EOF.

Y Datganiad argraffu

Mae'r fersiynau AWK o'r datganiad printf a swyddogaeth sprintf () (gweler isod) yn derbyn y fformatau manyleb trosi canlynol:

% c

Cymeriad ASCII. Os yw'r ddadl a ddefnyddir ar gyfer % c yn rhifol, caiff ei drin fel cymeriad a'i argraffu. Fel arall, tybir bod y ddadl yn llinyn, ac mae'r unig gymeriad cyntaf y llinyn hwnnw wedi'i argraffu.

% d , % i

Rhif degol (y rhan gyfan).

% e,% E

Rhif pwynt symudol o'r ffurflen [-] d.dddddde [+ -] dd . Mae'r fformat % E yn defnyddio E yn lle e .

% f

Rhif pwynt symudol o'r ffurflen [-] ddd.dddddd .

% g,% G

Defnyddio cyfnewidiad % e neu % f , p'un bynnag sydd yn fyrrach, gyda seros nad ydynt yn bwysig yn cael eu hatal. Mae'r fformat % G yn defnyddio % E yn hytrach na % e .

% o

Rhif octal heb ei sofnodi (hefyd yn gyfanrif).

% u Rhif degol wedi'i lofnodi (eto, cyfanrif).

% s

Llinyn cymeriad.

% x,% X

Rhif hecsadegol unsigned (cyfanrif). Mae'r fformat % X yn defnyddio ABCDEF yn hytrach nag abcdef .

%%

Un % cymeriad; nid oes dadl yn cael ei drawsnewid.

Efallai y bydd paramedrau dewisol, ychwanegol rhwng y % a'r llythyr rheoli:

cyfrif $

Defnyddiwch ddadl y cyfrif ar hyn o bryd yn y fformatio. Gelwir hyn yn fanyleb penodedig ac fe'i bwriedir yn bennaf i'w ddefnyddio mewn fersiynau wedi'u cyfieithu o llinynnau fformat, nid yn y testun gwreiddiol o raglen AWK. Mae'n estyniad gawk .

-

Dylid cyfiawnhau'r ymadrodd yn ei faes.

gofod

Ar gyfer cyfnewidiadau rhifol, rhagddodi gwerthoedd positif â gofod, a gwerthoedd negyddol gydag arwydd minws.

+

Mae'r arwydd mwy, a ddefnyddiwyd cyn y modurydd lled (gweler isod), yn dweud ei bod yn cyflenwi arwydd ar gyfer trosi rhifol, hyd yn oed os yw'r data sydd i'w fformatio'n bositif. Mae'r + yn diystyru'r addasydd gofod.

#

Defnyddiwch `` ffurflen arall '' ar gyfer rhai llythrennau rheoli. Ar gyfer % o , cyflenwch sero blaenllaw. Ar gyfer % x , a % X , cyflenwch 0x neu 0X blaenllaw am ganlyniad nonzero. Ar gyfer % e , % E , a % f , mae'r canlyniad bob amser yn cynnwys pwynt degol. Ar gyfer % g , a % G , ni chaiff nef sy'n tynnu eu tynnu o'r canlyniad.

0

Mae 0 sy'n arwain (sero) yn gweithredu fel baner, sy'n dynodi bod yr allbwn yn cael ei olchi â sero yn lle mannau. Mae hyn yn berthnasol hyd yn oed i fformatau allbwn anfeirniadol. Dim ond pan fydd lled y cae yn ehangach na'r gwerth sydd i'w argraffu, mae'r faner hon yn cael effaith.

lled

Dylai'r cae gael ei olchi i'r lled hwn. Fel arfer, mae'r maes yn cael ei olchi gyda mannau. Os yw'r faner 0 wedi cael ei ddefnyddio, caiff ei olchi â sero.

. cyn

Rhif sy'n nodi'r manwldeb i'w defnyddio wrth argraffu. Ar gyfer y % e , % E , a % f fformatau, mae hyn yn pennu nifer y digidau yr ydych am eu hargraffu ar y dde i'r pwynt degol. Ar gyfer y % g , a % G fformatau, mae'n nodi'r nifer uchaf o ddigidiau arwyddocaol. Ar gyfer y % d , % o , % i , % u , % x , a % X fformatau, mae'n nodi'r nifer isaf o ddigidau i'w argraffu. Ar gyfer % s , mae'n nodi uchafswm nifer y cymeriadau o'r llinyn y dylid eu hargraffu.

Cefnogir lled deinamig a galluoedd cyn y gweithdrefnau printf () ANSI C. Mae A * yn lle naill ai'r lled neu'r manylebau cyn yn achosi eu gwerthoedd i'w cymryd o'r rhestr ddadlau i printf neu sprintf () . I ddefnyddio manylebydd safle gyda lled neu fanylder deinamig, cyflenwch y cyfrif $ ar ôl y * yn y llinyn fformat. Er enghraifft, "% 3 $ * 2 $. * 1 $ s" .

Enwau Ffeil Arbennig

Wrth wneud ailgyfeirio I / O o naill ai printio neu argraffu i mewn i ffeil, neu drwy gael llinell oddi ar ffeil, mae gawk yn cydnabod rhai enwau ffeiliau arbennig yn fewnol. Mae'r enwau ffeiliau hyn yn caniatáu mynediad i ddisgrifwyr ffeiliau agored a etifeddwyd o broses riant gawk (fel arfer y gragen). Efallai y bydd yr enwau ffeiliau hyn hefyd yn cael eu defnyddio ar y llinell orchymyn i enwi ffeiliau data. Enwau'r ffeiliau yw:

/ dev / stdin

Y mewnbwn safonol.

/ dev / stdout

Yr allbwn safonol.

/ dev / stderr

Yr allbwn gwall safonol.

/ dev / fd / n

Y ffeil sy'n gysylltiedig â'r disgrifydd ffeil agored n .

Mae'r rhain yn arbennig o ddefnyddiol ar gyfer negeseuon gwall. Er enghraifft:

print "Rydych chi wedi cuddio hi!" > "/ dev / stderr"

tra byddai'n rhaid i chi fel arall ddefnyddio

print "Rydych chi wedi cuddio hi!" | "cath 1> a 2"

Gellir defnyddio'r enwau ffeil arbennig canlynol gyda'r gweithredydd | a chyd-broses ar gyfer creu cysylltiadau rhwydwaith TCP / IP.

/ inet / tcp / lport / rhost / rport

Ffeil am gysylltiad TCP / IP ar gyfraniad porthladd lleol i rost gwesteiwr pell ar rorth porthladd pell. Defnyddiwch borthladd o 0 i gael y system i ddewis porthladd.

/ inet / udp / lport / rhost / rport

Yn debyg, ond defnyddiwch CDU / IP yn lle TCP / IP.

/ inet / raw / port / rhost / rport

Wedi'u cadw ar gyfer defnydd yn y dyfodol.

Mae enwau ffeiliau arbennig eraill yn darparu mynediad i wybodaeth am y broses gawk rhedeg. Mae'r enwau ffeiliau hyn bellach yn ddarfodedig. Defnyddiwch y gyfres PROCINFO i gael y wybodaeth a ddarperir ganddynt. Enwau'r ffeiliau yw:

/ dev / pid

Mae darllen y ffeil hon yn dychwelyd ID y broses o'r broses gyfredol, mewn degol, wedi'i derfynu gyda llinell newydd.

/ dev / ppid

Wrth ddarllen y ffeil hwn, mae'n dychwelyd yr ID broses rhiant o'r broses gyfredol, yn degol, wedi'i derfynu gyda llinell newydd.

/ dev / pgrpid

Wrth ddarllen y ffeil hwn, mae'n dychwelyd ID y grŵp proses o'r broses gyfredol, mewn degol, wedi'i derfynu gyda llinell newydd.

/ dev / defnyddiwr

Mae darllen y ffeil hwn yn dychwelyd un cofnod wedi'i derfynu gyda llinell newydd. Mae'r caeau wedi'u gwahanu gyda mannau. $ 1 yw gwerth y galwad system getuid (2), $ 2 yw gwerth galwad y system geteuid (2), $ 3 yw gwerth y system system getgid (2), a $ 4 yw gwerth y getegid (2) galwad system. Os oes unrhyw feysydd ychwanegol, dyma'r IDau grŵp a ddychwelir gan gylchgronau (2). Efallai na fydd grwpiau lluosog yn cael eu cefnogi ar bob system.

Swyddogaethau Niferol

Mae gan AWK y swyddogaethau rhifyddeg adeiledig canlynol:

atan2 ( y , x )

Yn dychwelyd argloddiant y / x mewn radian.

cos ( expr )

Yn dychwelyd y cosin expr , sydd mewn radians.

exp ( expr )

Y swyddogaeth esboniadol.

int ( expr )

Yn troi at gyfanrif.

log ( expr )

Y swyddogaeth logarithm naturiol.

rand ()

Yn dychwelyd rhif hap rhwng 0 a 1.

pechod ( expr )

Yn dychwelyd y syn o expr , sydd mewn radians.

sqrt ( expr )

Y swyddogaeth gwraidd sgwâr.

srand ( [ expr ] )

Mae'n defnyddio hepgor fel had newydd ar gyfer y generadur rhif ar hap. Os na ddarperir expr , defnyddir amser y dydd. Y gwerth dychwelyd yw'r hadau blaenorol ar gyfer y generadur rhif ar hap.

Swyddogaethau Llinynnol

Mae gan Gawk y swyddogaethau llinynnol adeiledig canlynol:

asort ( s [ , d ] )

Yn dychwelyd nifer yr elfennau yn y gronfa ffynhonnell. Mae cynnwys s yn cael eu didoli gan ddefnyddio rheolau arferol gawk ar gyfer cymharu gwerthoedd, ac mae mynegeion gwerthoedd wedi'u didoli yn cael eu disodli gan gyfansawdd dilyniannol sy'n dechrau gyda 1. Os yw'r gweithgaredd dewisol cyrchfan yn cael ei bennu, yna caiff s ei ddyblygu yn gyntaf i , ac yna d yn cael ei didoli, gan adael mynegeion y gronfa ffynhonnell heb ei newid.

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

Chwiliwch y llinyn targed t ar gyfer gemau o'r mynegiant rheolaidd r . Os yw h yn llinyn sy'n dechrau gyda g neu G , yna disodli pob gêm o r gyda s . Fel arall, mae h yn rhif sy'n nodi pa gyfateb r i'w ailosod. Os na chyflenwir t , defnyddir $ 0 yn lle hynny. O fewn y testunau newydd, gellir defnyddio'r dilyniant \ n , lle mae n yn ddigidol o 1 i 9, i nodi'r testun yn unig a oedd yn cyfateb i'r is-gyfresiad rhiniogedig. Mae'r dilyniant \ 0 yn cynrychioli'r testun cyfan cyfatebol, fel y mae'r cymeriad & . Yn wahanol i is () a gsub () , dychwelir y llinyn wedi'i haddasu o ganlyniad i'r swyddogaeth, ac ni newidir y llinyn targed gwreiddiol.

gsub ( r , s [ , t ] )

Ar gyfer pob is-bont sy'n cydweddu'r mynegiant rheolaidd r yn y llinyn t , rhodder y llinyn, a dychwelyd nifer y dirprwyon. Os na chyflenwir t , defnyddiwch $ 0 . Mae'r testun a gafodd ei gyfateb yn ei le yn cael ei ddisodli yn y testun newydd yn y testun newydd. Defnyddiwch \ & i gael llythrennol a . (Rhaid i hyn gael ei deipio fel "\\ &" ; gweler GAWK: Rhaglennu AWK Effeithiol ar gyfer trafodaeth lawnach ar y rheolau ar gyfer a ' r backslashes yn y testun newydd o is () , gsub () , a gensub () .)

mynegai ( au , t )

Yn dychwelyd mynegai'r llinyn t yn y llinyn, neu 0 os nad yw t yn bresennol. (Mae hyn yn awgrymu bod mynegeion cymeriad yn dechrau ar un.)

hyd ( [ s ] )

Yn dychwelyd hyd y llinyn , neu hyd $ 0 os na chyflenwir s .

cyfateb ( s , r [ , a ] )

Yn dychwelyd y sefyllfa lle mae'r mynegiant rheolaidd yn digwydd, neu 0 os nad yw r yn bresennol, ac yn gosod gwerthoedd RSTART a RLENGTH . Sylwch fod yr orchymyn dadl yr un fath ag ar gyfer y gweithredwr: str ~ re . Os darperir cyfres , caiff ei glirio ac yna mae elfennau 1 trwy n yn cael eu llenwi â'r dogn o s sy'n cydweddu'r is-gyfresiad rhyngddeliad cyfatebol yn r . Mae elfen 0'th o yn cynnwys y gyfran o s a gyfatebir gan yr holl fynegiant rheolaidd r .

rhaniad ( au , a [ , r ] )

Yn rhannu'r llinyn i mewn i'r gyfres ar y mynegiant rheolaidd r , ac yn dychwelyd nifer y caeau. Os na chaiff r ei hepgor, defnyddir FS yn lle hynny. Mae'r gyfres yn cael ei glirio yn gyntaf. Mae rhannu yn ymddwyn yn union i rannu caeau, a ddisgrifir uchod.

sprintf ( fmt , expr-list )

Mae printiau yn dangos rhestr yn ôl fmt , ac yn dychwelyd y llinyn sy'n deillio ohoni.

strtonum ( str )

Yn archwilio str , ac yn dychwelyd ei werth rhifol. Os yw str yn dechrau gyda 0 , strtonum () blaenllaw yn tybio bod str yn rhif octal. Os yw str yn dechrau gyda 0x neu 0X blaenllaw, mae strtonum () yn tybio bod str yn nifer hecsadegol.

is ( r , s [ , t ] )

Yn union fel gsub () , ond dim ond y is-bont cyfatebol cyntaf sy'n cael ei ddisodli.

substr ( s , i [ , n ] )

Yn dychwelyd y is-bwlch n -nodweddiadol o s sy'n dechrau yn i . Os na chaiff n ei hepgor, defnyddir gweddill y s .

tolwr ( str )

Yn dychwelyd copi o'r string string, gyda'r holl gymeriadau achos uchaf yn cael eu cyfieithu i'w cymheiriaid achos isaf cyfatebol. Ni chaiff cymeriadau nad ydynt yn yr wyddor eu gadael.

cyffwrdd ( str )

Yn dychwelyd copi o'r string string, gyda'r holl gymeriadau achos isaf yn cael eu cyfieithu i'w cymheiriaid achos uchaf cyfatebol. Ni chaiff cymeriadau nad ydynt yn yr wyddor eu gadael.

Swyddogaethau Amser

Gan mai un o'r prif ddefnyddiau o raglenni AWK yw prosesu ffeiliau log sy'n cynnwys gwybodaeth stamp amser, mae gawk yn darparu'r swyddogaethau canlynol ar gyfer cael stampiau amser a'u fformatio.

mktime ( datespec )

Rurns datespec i mewn i stamp amser o'r un ffurflen ag y dychwelwyd gan systime () . Mae'r dyddiad yn gyfres o'r ffurflen BBBB MM DD HH MM SS [DST] . Mae cynnwys y llinyn yn chwech neu saith rhif sy'n cynrychioli'r flwyddyn lawn, gan gynnwys y ganrif, y mis o 1 i 12, y diwrnod y mis o 1 i 31, y diwrnod o ddydd i ddydd rhwng 0 a 23, y funud o 0 i 59, a'r ail o 0 i 60, a baner arbed golau dydd dewisol. Nid oes angen i werthoedd y niferoedd hyn fod o fewn yr ystodau a bennir; er enghraifft, mae awr o -1 yn golygu 1 awr cyn hanner nos. Tybir y calendr Gregorian sero-sero, gyda blwyddyn 0 blwyddyn flaenorol 1 a blwyddyn -1 flwyddyn flaenorol 0. Tybir bod yr amser yn y man amser lleol. Os yw'r baner arbed golau dydd yn bositif, tybir bod yr amser yn arbed amser golau dydd; os yw'n sero, tybir bod yr amser yn amser safonol; ac os yw negyddol (y rhagosodiad), mktime () yn ceisio penderfynu a yw amser arbed golau dydd yn effeithiol ar gyfer yr amser penodedig. Os nad yw datepec yn cynnwys digon o elfennau neu os yw'r amser sy'n deillio o'r tu allan, mae mktime () yn dychwelyd -1.

strftime ( [ fformat [ , amserlen ]] )

Ffurflenni amserlen yn ôl y fanyleb mewn fformat. Dylai'r amserlen fod yr un ffurf ag y dychwelwyd gan systime () . Os yw'r amserlen ar goll, defnyddir amser presennol y dydd. Os yw'r fformat ar goll, defnyddir fformat rhagosodedig sy'n cyfateb i allbwn dyddiad (1). Gweler y fanyleb ar gyfer y swyddogaeth strftime () yn ANSI C ar gyfer y diwygiadau fformat sydd yn sicr o fod ar gael. Mae fersiwn parth cyhoeddus o strftime (3) a dudalen dyn ar ei gyfer yn dod â gawk ; os defnyddiwyd y fersiwn honno i adeiladu gawk , yna mae'r holl addasiadau a ddisgrifir yn y dudalen dyn hwnnw ar gael i gawk.

systime ()

Yn dychwelyd amser cyfredol y dydd fel nifer yr eiliadau ers yr Epoch (1970-01-01 00:00:00 UTC ar systemau POSIX).

Swyddogaethau Manwliadau Bit

Gan ddechrau gyda fersiwn 3.1 o gawk , mae'r swyddogaethau trin ychydig ar gael. Maent yn gweithio trwy drosi gwerthoedd pwyntiau symudol dwbl i gyfanrifau hir heb eu llunio , gan wneud y llawdriniaeth, ac yna trosi'r canlyniad yn ôl i'r pwynt symudol. Y swyddogaethau yw:

a ( v1 , v2 )

Dychwelwch yr AC bitwise o'r gwerthoedd a ddarperir gan v1 a v2 .

cyd ( val )

Dychwelwch y cymhleth bitwise o val .

lshift ( val , cyfrif )

Dychwelwch werth val , a symudwyd chwith gan ddarnau cyfrif .

neu ( v1 , v2 )

Dychwelwch NEU yn rhannol y gwerthoedd a ddarperir gan v1 a v2 .

rshift ( val , cyfrif )

Dychwelwch werth val , a symudwyd yn iawn trwy ddarnau cyfrif .

xor ( v1 , v2 )

Dychwelwch XOR bitwise o'r gwerthoedd a ddarperir gan v1 a v2 .

Swyddogaethau Rhyngwladoli

Gan ddechrau gyda fersiwn 3.1 o gawk , gellir defnyddio'r swyddogaethau canlynol o fewn eich rhaglen AWK ar gyfer cyfieithu llwybrau ar amser rhedeg. Am fanylion llawn, gweler GAWK: Rhaglennu AWK Effeithiol .

bindtextdomain ( cyfeiriadur [ , parth ] )

Yn dynodi'r cyfeiriadur lle mae gawk yn chwilio am y ffeiliau .mo , rhag ofn na fyddant yn cael eu gosod yn y lleoliadau `` safonol '(ee, yn ystod y profion). Mae'n dychwelyd y cyfeiriadur lle mae parth `` yn rhwymo. ''

Y parth diofyn yw gwerth TEXTDOMAIN . Os yw'r cyfeiriadur yn y llinyn null ( "" ), yna bindtextdomain () yn dychwelyd y rhwymiad presennol ar gyfer y parth a roddir.

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

Yn dychwelyd y cyfieithiad o linyn mewn parth parth testun ar gyfer categori categori lleol. Y gwerth diofyn ar gyfer parth yw gwerth cyfredol TEXTDOMAIN . Y gwerth diofyn ar gyfer categori yw "LC_MESSAGES" .

Os ydych chi'n cyflenwi gwerth ar gyfer categori , rhaid iddo fod yn llinyn sy'n gyfartal ag un o'r categorïau lleol hysbys a ddisgrifir yn GAWK: Rhaglennu AWK Effeithiol . Rhaid i chi hefyd ddarparu parth testun. Defnyddiwch TEXTDOMAIN os ydych am ddefnyddio'r parth cyfredol.

dcngettext ( string1 , string2 , number [ , domain [ , category ]] )

Yn dychwelyd y ffurflen lluosog a ddefnyddir ar gyfer nifer y cyfieithiad o string1 a string2 mewn parth parth testun ar gyfer categori categori lleol. Y gwerth diofyn ar gyfer parth yw gwerth cyfredol TEXTDOMAIN . Y gwerth diofyn ar gyfer categori yw "LC_MESSAGES" .

Os ydych chi'n cyflenwi gwerth ar gyfer categori , rhaid iddo fod yn llinyn sy'n gyfartal ag un o'r categorïau lleol hysbys a ddisgrifir yn GAWK: Rhaglennu AWK Effeithiol . Rhaid i chi hefyd ddarparu parth testun. Defnyddiwch TEXTDOMAIN os ydych am ddefnyddio'r parth cyfredol.

SWYDDOGAETHAU DIFFINEDIG-DEFNYDDIOL

Diffinnir swyddogaethau yn AWK fel a ganlyn:

enw swyddogaeth ( rhestr paramedr ) { datganiadau }

Caiff swyddogaethau eu gweithredu pan gânt eu galw o fewn ymadroddion naill ai mewn patrymau neu gamau gweithredu. Defnyddir y paramedrau gwirioneddol a gyflenwir yn yr alwad swyddogaethol i chwalu'r paramedrau ffurfiol a ddatganwyd yn y swyddogaeth. Caiff y rhain eu pasio trwy gyfeirnod, trosglwyddir amrywynnau eraill yn ôl gwerth.

Gan nad oedd y swyddogaethau'n rhan o'r iaith AWK yn wreiddiol, mae'r ddarpariaeth ar gyfer newidynnau lleol yn eithaf clwstl: fe'u datganir fel paramedrau ychwanegol yn y rhestr paramedr. Y confensiwn yw gwahanu newidynnau lleol o baramedrau go iawn gan fannau ychwanegol yn y rhestr paramedr. Er enghraifft:

swyddogaeth f (p, q, a, b) # a a b yn lleol {...} / abc / {...; f (1, 2); ...}

Mae'n ofynnol i'r brechlyn chwith mewn alwad swyddogaeth ddilyn enw'r swyddogaeth yn syth, heb unrhyw le gwyn ymyrryd. Mae hyn er mwyn osgoi amwysedd cystrawen gyda'r gweithredwr concatenation. Nid yw'r cyfyngiad hwn yn berthnasol i'r swyddogaethau adeiledig a restrir uchod.

Gall swyddogaethau alw'i gilydd a gall fod yn ail-weithredol. Mae paramedrau swyddogaeth a ddefnyddir fel newidynnau lleol wedi'u cychwyn i'r llinyn null a'r rhif sero ar ôl ymgyrchu swyddogaeth.

Defnyddiwch expr ddychweliad i ddychwelyd gwerth o swyddogaeth. Ni chaiff y gwerth dychwelyd ei ddiffinio os na ddarperir unrhyw werth, neu os yw'r swyddogaeth yn dychwelyd erbyn `` disgyn i ffwrdd '' y diwedd.

Os yw --lint wedi cael ei ddarparu, mae gawk yn rhybuddio am alwadau i swyddogaethau sydd heb eu diffinio ar amser parse, yn hytrach nag amser rhedeg. Mae galw swyddogaeth heb ei ddiffinio yn ystod amser rhedeg yn wall marwol.

Gellir defnyddio'r gair func yn lle swyddogaeth .

SWYDDOGAETHAU NEWYDD SY'N YMWNEUD YN DYNAMIC

Gan ddechrau gyda fersiwn 3.1 o gawk , gallwch chi ychwanegu deinamig swyddogaethau newydd yn y cyfieithydd gawk rhedeg. Mae'r manylion llawn y tu hwnt i gwmpas y dudalen lawlyfr hon; gweler GAWK: Rhaglennu AWK Effeithiol ar gyfer y manylion.

estyniad ( gwrthrych , swyddogaeth )

Cysylltu'n ddynamig â'r ffeil gwrthrych a rennir a enwir gan wrthrych , ac yn ymosod ar swyddogaeth yn y gwrthrych hwnnw, i berfformio cychwynnol. Dylai'r rhain gael eu darparu fel lllinynnau. Yn dychwelyd y gwerth a ddychwelwyd gan swyddogaeth .

Darperir y ddogfen hon a'i dogfennu yn GAWK: Rhaglennu AWK Effeithiol , ond mae'n debygol y bydd popeth am y nodwedd hon yn newid yn y datganiad nesaf. Rydyn ni'n gryf iawn yn argymell nad ydych yn defnyddio'r nodwedd hon am unrhyw beth nad ydych yn fodlon ei ailwneud.

SIGNALS

Mae pgawk yn derbyn dau arwydd. Mae SIGUSR1 yn achosi iddo adael stack galwadau proffil a swyddogaeth i'r ffeil proffil, sydd naill ai awkprof.out , neu ba bynnag ffeil a enwyd gyda'r opsiwn --profile . Yna mae'n parhau i redeg. Mae SIGHUP yn achosi iddo adael y stack proffil a ffonio swyddogaeth ac yna ymadael.

ENGHREIFFTIAU

Argraffu a didoli enwau mewngofnodi pob defnyddiwr: BEGIN {FS = ":"} {argraffu $ 1 | "didoli"} Cyfrif llinellau mewn ffeil: {nlines ++} END {print nlines} Rhagfynegwch bob llinell yn ôl ei rif yn y ffeil: {print FNR, $ 0} Concatenate a rhif llinell (amrywiad ar thema): {print NR, $ 0}

Mewnololi

Cyfyngiadau o gymeriadau sydd wedi'u hamgáu mewn dyfynbrisiau dwbl yw cyfansoddion llinynnol. Mewn amgylcheddau nad ydynt yn siarad Saesneg, mae'n bosibl marcio tannau yn y rhaglen AWK fel y mae angen cyfieithu i'r iaith naturiol frodorol. Nodir y lllinynnau hyn yn y rhaglen AWK gyda thanlinell blaenllaw (`` _ ''). Er enghraifft,

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

bob amser yn argraffu hello, byd . Ond,

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

gallai argraffu bonjour, monde yn Ffrainc.

Mae sawl cam ynghlwm wrth gynhyrchu a rhedeg rhaglen AWK y gellir ei haddasu.

1.

Ychwanegwch weithred BEGIN i neilltuo gwerth i'r newidyn TEXTDOMAIN i osod parth testun i enw sy'n gysylltiedig â'ch rhaglen.


BEGIN {TEXTDOMAIN = "myprog"}

Mae hyn yn caniatáu gawk i ddod o hyd i'r ffeil .mo sy'n gysylltiedig â'ch rhaglen. Heb y cam hwn, mae gawk yn defnyddio'r maes testun negeseuon , sy'n debygol nad yw'n cynnwys cyfieithiadau ar gyfer eich rhaglen.

2.

Nodwch yr holl llinynnau y dylid eu cyfieithu gyda tanlinelliadau blaenllaw.

3.

Os oes angen, defnyddiwch y swyddogaethau dcgettext () a / neu bindtextdomain () yn eich rhaglen, fel sy'n briodol.

4.

Rhedeg gawk --gen-po -f myprog.awk> myprog.po i greu ffeil .po ar gyfer eich rhaglen.

5.

Darparu cyfieithiadau priodol, ac adeiladu a gosod ffeil .mo cyfatebol.

Disgrifir y nodweddion rhyngwladoli yn fanwl yn GAWK: Rhaglennu AWK Effeithiol .

Cymhwysedd Posix

Mae nod sylfaenol ar gyfer gawk yn gydnaws â safon POSIX, yn ogystal â'r fersiwn diweddaraf o UNIX awk . I'r perwyl hwn, mae gawk yn ymgorffori'r nodweddion gweladwy canlynol sy'n ddefnyddiol na chaiff eu disgrifio yn y llyfr AWK, ond maent yn rhan o fersiwn Bell Laboratories o awk , ac maent yn y safon POSIX.

Mae'r llyfr yn nodi bod aseiniad newidyn llinell gorchymyn yn digwydd pan fyddai awk fel arall yn agor y ddadl fel ffeil, sydd ar ôl i'r blwch BEGIN gael ei weithredu. Fodd bynnag, mewn gweithrediadau cynharach, pan ymddangosodd aseiniad o'r fath cyn unrhyw enwau ffeiliau, byddai'r aseiniad yn digwydd cyn i'r blwch BEGIN gael ei redeg. Daeth ceisiadau i ddibynnu ar y `` nodwedd hon. '' Pan newidiwyd awk i gyd-fynd â'i dogfennau, roedd yr opsiwn -v ar gyfer aseinio newidynnau cyn ychwanegwyd gweithrediad rhaglen i ddarparu ar gyfer ceisiadau sy'n dibynnu ar yr hen ymddygiad. (Cytunwyd ar y nodwedd hon gan y Labordai Bell a'r datblygwyr GNU.)

Mae'r opsiwn -W ar gyfer gweithredu nodweddion penodol yn dod o safon POSIX.

Wrth brosesu dadleuon, mae gawk yn defnyddio'r opsiwn arbennig `` - '' i nodi diwedd y dadleuon. Mewn modd cydweddu, mae'n rhybuddio am, ond fel arall, yn anwybyddu opsiynau heb eu diffinio. Mewn gweithrediad arferol, caiff dadleuon o'r fath eu trosglwyddo i'r rhaglen AWK i'w brosesu.

Nid yw'r llyfr AWK yn diffinio gwerth dychwelyd srand () . Mae safon POSIX wedi dychwelyd yr hadau a ddefnyddiwyd, er mwyn cadw olrhain dilyniannau rhif ar hap. Felly mae srand () yn gawk hefyd yn dychwelyd ei hadau presennol.

Nodweddion newydd eraill yw: Y defnydd o opsiynau lluosog -f (o MKS awk ); y gyfres AMGYLCHEDD ; y dilyniannau dianc \ a, a \ v (a wnaed yn wreiddiol yn y gawk a'u bwydo yn ôl i fersiwn Labordai Bell); y swyddogaethau tolower () a toupper () a adeiladwyd i mewn (o'r fersiwn Bell Laboratories); a'r manylebau trosi ANSI C yn printf (a wnaed gyntaf yn y fersiwn Bell Laboratories).

Nodweddion Hanesyddol

Mae dwy nodwedd o weithrediadau hanesyddol AWK y mae gawk yn eu cefnogi. Yn gyntaf, mae'n bosibl galw'r swyddogaeth hyd () a adeiladwyd i mewn nid yn unig heb unrhyw ddadl, ond hyd yn oed heb ymylon! Felly,

a = hyd # Holy Algol 60, Batman!

yr un peth â naill ai

a = hyd ()
a = hyd ($ 0)

Mae'r nodwedd hon wedi'i farcio fel `` dibynnu '' yn y safon POSIX, ac mae gawk yn rhoi rhybudd am ei ddefnydd os yw --lint wedi'i nodi ar y llinell orchymyn.

Y nodwedd arall yw defnyddio naill ai'r datganiadau parhad neu'r toriad y tu allan i gorff ychydig , ar gyfer , neu dolen. Mae gweithrediadau traddodiadol AWK wedi trin y fath ddefnydd yn gyfwerth â'r datganiad nesaf . Mae Gawk yn cefnogi'r defnydd hwn os yw --traditional wedi cael ei bennu.

Estyniadau GNU

Mae gan Gawk nifer o estyniadau i POSIX awk . Fe'u disgrifir yn yr adran hon. Gellir anwybyddu pob un o'r estyniadau a ddisgrifir yma trwy ymgeisio am gawk gyda'r opsiwn --radd .

Nid yw'r nodweddion canlynol o gawk ar gael yn POSIX awk .

*

Ni chaiff chwiliad llwybr ei berfformio ar gyfer ffeiliau a enwir trwy'r opsiwn -f . Felly nid yw newidyn amgylchedd AWKPATH yn arbennig.

*

Y dilyniant dianc \ x . (Anabl gyda --posix .)

*

Y swyddogaeth fflush () . (Anabl gyda --posix .)

*

Y gallu i barhau â llinellau ar ôl ? a :. (Anabl gyda --posix .)

*

Cyfansoddion octal a hecsadegol yn rhaglenni AWK.

*

Nid yw'r newidynnau ARGIND , BINMODE , ERRNO , LINT , RT a TEXTDOMAIN yn arbennig.

*

Nid yw'r newidyn IGNORECASE a'i sgîl-effeithiau ar gael.

*

Rhannu caeau amrywiol a lled sefydlog FIELDWIDTHS .

*

Nid yw'r gyfres PROCINFO ar gael.

*

Y defnydd o RS fel mynegiant rheolaidd.

*

Nid yw'r enwau ffeiliau arbennig sydd ar gael ar gyfer ailgyfeirio I / O yn cael eu cydnabod.

*

Y | & gweithredwr am greu cyd-brosesau.

*

Y gallu i rannu cymeriadau unigol gan ddefnyddio'r llinyn null fel gwerth FS , ac fel y trydydd ddadl i rannu () .

*

Yr ail ddadl ddewisol i'r swyddogaeth gau () .

*

Y drydedd ddadl ddewisol i'r swyddogaeth cyfatebol () .

*

Y gallu i ddefnyddio manylebau positif gyda printf a sprintf () .

*

Y defnydd o gyfres ddileu i ddileu cynnwys cyfan set.

*

Y defnydd o'r nesaffile i roi'r gorau i brosesu'r ffeil fewnbwn gyfredol.

*

Mae'r a () , asort () , bindtextdomain () , compl () , dcgettext () , gensub () , lshift () , mktime () , neu () , rshift () , strftime () , strtonum () , systime () a xor () swyddogaethau.

*

Llinynnau lleoladwy.

*

Ychwanegu swyddogaethau adeiledig newydd yn ddeinamig gyda'r swyddogaeth estyniad () .

Nid yw'r llyfr AWK yn diffinio gwerth dychwelyd y swyddogaeth agos () . Mae Gawk 's close () yn dychwelyd y gwerth o fclose (3), neu pclose (3), wrth gau ffeil allbwn neu bibell, yn y drefn honno. Mae'n dychwelyd statws gadael y broses wrth gau pibell fewnbwn. Y gwerth dychwelyd yw -1 os na chafodd y ffeil, y bibell neu'r cyd-broses a enwir ei hagor gyda ailgyfeirio.

Pan gawk yn cael ei ddefnyddio gyda'r opsiwn --radd , os yw'r ddadl fs i'r opsiwn -F yn `` t '', yna mae FS wedi'i osod i gymeriad y tab. Sylwch fod gawk teipio -F \ t ... yn achosi'r gragen i ddyfynnu `` t, '', ac nid yw'n pasio `` \ t '' i'r opsiwn -F . Gan fod hwn yn achos arbennig braidd, nid dyna'r ymddygiad diofyn. Nid yw'r ymddygiad hwn hefyd yn digwydd os --posix wedi'i phenodi. I gael cymeriad tab yn wir fel y gwahanydd maes, mae'n well defnyddio dyfyniadau sengl: gawk -F '\ t' ....

Gweler gorchmynion eraill : aros , lp , cyflawn , execv , getfacl , ioctl , uniq , rmmod , pvcreate , rsh , unix2dos , cal , fs , cd , iwpriv , swapon , autofs , talk , motd , free , lpr , execl , fdisk , yn , pwy , iwconfig , ifconfig , vgdisplay , open , lsmod , ntohs , mailq , kill , wtmp