Pagkat-on sa Linux Command - gawk

Ngalan

gawk - nga paagi sa pag-scan ug pagproseso sa pinulongan

Sinopsis

gawk [POSIX o GNU style options] -f program-file [ - ] file ...
gawk [POSIX o GNU style options] [ - ] program-text file ...

pgawk [POSIX o GNU style options] -f program-file [ - ] file ...
pgawk [POSIX o GNU style options] [ - ] program-text file ...

Deskripsiyon

Ang Gawk mao ang pagpatuman sa GNU Project sa AWK programming language. Kini nahisubay sa kahulugan sa pinulongan sa POSIX 1003.2 Command Language And Utilities Standard. Kini nga bersyon gibase sa paghubit sa The AWK Programming Language , ni Aho, Kernighan, ug Weinberger, uban ang mga dugang nga bahin nga makita sa System V Release 4 nga bersyon sa UNIX awk . Gawk usab naghatag sa mas bag-o nga Bell Laboratories awk extensions, ug ubay-ubay nga GNU-specific extensions.

Ang Pgaw mao ang profiling nga bersyon sa gawk . Kini managsama sa tanan nga paagi sa paghimo, gawas nga ang mga programa modagan nga hinay-hinay, ug kini awtomatik nga magpatunghag profile sa pagpagawas sa file awkprof.out kung nahuman. Tan-awa ang - kapilian nga profile , sa ubos.

Ang command line naglangkob sa mga kapilian sa gawk mismo, ang AWK nga programa nga teksto (kung dili gihatag pinaagi sa -f o - file nga mga kapilian), ug ang mga bili nga mahimong magamit sa ARGC ug ARGV nga gitakda nga mga variable sa AWK.

Opsyon nga Pagpili

Ang mga opsyon sa Gawk mahimo nga usa ka tradisyonal nga POSIX nga usa ka kapilian nga sulat, o estilo sa GNU nga taas nga mga kapilian. Ang POSIX nga mga kapilian magsugod sa usa ka `` - '', samtang ang daghang mga opsyon magsugod sa `` - ''. Ang tag-as nga mga kapilian gihatag alang sa duha ka bahin sa GNU-specific nga mga bahin ug alang sa mga gimando nga POSIX.

Pagkahuman sa POSIX standard, ang gawk- specific nga mga opsyon gihatag pinaagi sa mga argumento sa -W nga opsyon. Ang mga kapilian sa Multiple -W mahimo nga supplied Ang matag- W nga kapilian adunay susama nga taas nga kapilian, ingon nga detalyado sa ubos. Ang mga pangatarungan sa taas nga mga kapilian mahimo nga duyog sa kapilian pinaagi sa usa ka = usa ka timaan, nga wala'y mga gilay-on nga mga luna, o kini mahimo nga ihatag sa sunod nga command line argument. Ang taas nga kapilian mahimo nga minubo, basta ang minubo nagpabilin nga talagsaon.

Mga kapilian

Gidawat sa Gawk ang mosunod nga mga kapilian, gilista sa alpabeto.

-F fs

--field-separator fs Paggamit fs alang sa input field separator (ang bili sa predefined variable nga FS ).

-v var = val

--assign var = val Ibutang ang bili nga val para sa variable var , sa dili pa ipatuman ang programa. Ang ingon nga mga bili sa mga variables anaa sa BEGIN block sa usa ka programa sa AWK.

-f program-file

--Pagfile sa file-file Basaha ang tinubdan sa AWK program gikan sa file -file file , inay gikan sa unang command line argument. Mahimong magamit ang multiple -f (o - file ).

-mf NNN

-mr NNN Ibutang ang lainlaing mga limitasyon sa panumduman sa kantidad nga NNN . Ang f flag nagtakda sa maximum nga gidaghanon sa mga natad, ug ang r flag nagtakda sa maximum nga record size. Kining duha ka mga bandera ug ang -m nga kapilian gikan sa bersyon sa research sa Bell Laboratories sa UNIX awk . Wala kini gibalewala sa gawk , tungod kay ang gawk wala'y natakda nga mga limitasyon.

-W compat

-sa tradisyonal

- kauban

- Patay nga Run sa compatibility mode. Sa pagkasibo sa mode, ang gawk managsama sa UNIX awk ; wala sa bisan kinsa sa mga extension sa GNU nga piho ang giila. Ang paggamit sa -traditional gipalabi sa ubang mga porma sa kini nga kapilian. Tan-awa ang GNU EXTENSIONS , sa ubos, alang sa dugang kasayuran.

-W copyleft

-Usa ka copyright

-

- kopya Kopya sa mubo nga bersyon sa mensahe sa impormasyon sa copyright sa GNU sa standard output ug magmalampuson.

-W dump-variables [ = file ]

--dump-variables [ = file ] I-print ang usa ka listahan sa mga lista sa mga lain-laing mga kausaban sa kalibutan, ang ilang mga tipo ug ang katapusan nga mga bili sa pag file . Kung walay file gihatag, gawk naggamit sa usa ka file nga ginganlan awkvars.out sa kasamtangan nga direktoryo.

Ang pag-lista sa tanan nga mga tibuok kalibutan nga mga kabag-ohan usa ka maayong paagi sa pagpangita sa mga sayop nga typographical sa imong mga programa. Mahimo usab nimo gamiton kini nga opsyon kung adunay usa ka dako nga programa nga adunay daghan nga mga gimbuhaton, ug gusto nimong masiguro nga ang imong mga katungdanan dili sayup nga paggamit sa kalibutanong mga kabag-ohan nga buot nimo nga mahimong lokal. (Kini usa ka sayon ​​nga kasaypanan nga himoon uban sa yano nga mga pangalan nga variable sama sa i , j , ug uban pa.)

-Tabangi

-U paggamit

- tabang

- Usisaa ang usa ka medyo mubo nga summary sa mga opsyon nga anaa sa standard output. (Sumala sa Mga Sukaranan sa GNU Coding , kini nga mga kapilian maoy hinungdan sa usa ka diha-diha, malampuson nga paggawas.)

-W lint [ = makamatay ]

--lint [ = fatal ] Paghatag og mga pasidaan mahitungod sa mga pagtukod nga dili katuohan o dili madala ngadto sa ubang mga implementasyon sa IKAW. Uban sa usa ka opsyonal nga argumento sa makamatay , lint pasidaan nga mahimong makamatay nga mga kasaypanan. Mahimo kini nga dramatiko, apan ang paggamit niini makadasig gayod sa pagpalambo sa mas malalang mga programa sa AWK.

-Sa lint-old

- Lint-old Paghatag og mga pasidaan mahitungod sa mga pagtukod nga dili madala ngadto sa orihinal nga bersyon sa Unix awk .

-W gen-po

--Gan- scan ug i- scan ang AWK nga programa, ug makamugna og GNU .po format nga file sa standard output uban ang mga entries alang sa tanan nga mga localizable strings sa programa. Ang programa mismo wala gipatay. Tan-awa ang distribusyon sa gettext GNU alang sa dugang kasayuran sa .po file.

-W non-decimal-data

- Dili-kinutuban nga datos Ilha ang octal ug hexadecimal values ​​sa input data. Gamita kini nga kapilian uban ang dakong pasidaan!

-W posix

- kini nga opsyon naglihok sa kompatibilidad nga paagi, uban sa mosunod nga dugang nga mga pagdili:

*

Ang mga pagkasunod-sunod sa pagkalagiw wala maila.

*

Lamang ang luna ug tab naglihok isip mga field separators sa dihang ang FS gibutang sa usa ka luna, ang newline dili.

*

Dili ka makapadayon sa mga linya pagkahuman ? ug :.

*

Ang sinonimo nga func alang sa function sa keyword wala maila.

*

Ang mga operator ** ug ** = dili mahimong gamiton sa dapit ^ ug ^ = .

*

Ang fflush () function dili magamit.

-W profile [ = prof_file ]

--profile [ = prof_file ] Ipadala ang profiling data sa prof_file . Ang default mao ang awkprof.out . Kon magdalagan nga may gawk , ang profile usa lamang ka `` pretty print '' nga bersyon sa programa. Kon modalagan uban sa pgawk , ang profile naglangkob sa mga pag-ihap sa matag pahayag sa programa sa wala nga kilid ug magamit ang mga numero sa tawag alang sa matag function nga gitakda sa user.

-W pag-usab-usab

--re-interval Pag- andam sa paggamit sa mga ekspresyon sa interval sa regular nga pagpahayag sa ekspresyon (tan-awa ang Regular Expression , sa ubos). Ang mga interval nga ekspresyon dili na tradisyunal nga mabasa sa AWK nga pinulongan. Ang POSIX standard nagdugang kanila, aron mahimo ang awk ug egrep nga managsama sa usag usa. Bisan pa, ang ilang paggamit lagmit nga makaguba sa mga daan nga AWK nga mga programa, mao nga naghatag lamang sila niini kon sila gihangyo uban niini nga kapilian, o kon ang - gibutang ang posix .

-W source program-text

- Gamit nga programa-teksto Gamita ang programa-nga teksto ingon nga AWK program source code. Kini nga opsyon nagtugot sa dali nga pagsal-ot sa mga gimbuhaton sa librarya (gigamit pinaagi sa -f ug - file nga mga kapilian) uban ang source code nga gisulod sa command line. Gituyo kini alang sa medium ngadto sa dako nga AWK nga mga programa nga gigamit sa mga script sa mga kabhang.

-W nga bersyon

- Pagbag-o Print version nga impormasyon alang niining partikular nga kopya sa gawk sa standard output. Kini mapuslanon alang sa pagkahibalo kung ang kasamtangan nga kopya sa gawk sa imong sistema mao ang labing bag-o nga may kalabutan sa bisan unsa nga gipanghatag sa Free Software Foundation. Kini usab mapuslanon sa pagtaho sa mga bugs. (Sumala sa Mga Sukaranan sa GNU Coding , kini nga mga kapilian maoy hinungdan sa usa ka diha-diha, malampuson nga paggawas.)

- Pag- signal sa katapusan sa mga kapilian. Kini mapuslanon sa pagtugot sa dugang nga mga argumento sa AWK nga programa mismo nga magsugod sa `` - ''. Kini nag-una alang sa pagkamakanunayon sa argumento sa pagtapos sa kombensyon nga gigamit sa kadaghanan nga mga programa sa POSIX.

Sa pagkompirma nga pamaagi, ang bisan unsa nga mga kapilian nga gibutang nga dili balido, apan sa laing paagi gibaliwala. Sa kasagaran nga operasyon, basta ang programa nga teksto gihatag, ang wala mahibal-an nga mga kapilian gipasa ngadto sa AWK nga programa sa ARGV array alang sa pagproseso. Kini ilabi na nga mapuslanon alang sa pagpadagan sa AWK nga mga programa pinaagi sa `` #! '' Nga executable interpreter nga mekanismo.

Pagpahigayon sa AWK PROGRAM

Ang usa ka AWK nga programa naglangkob sa usa ka han-ay sa mga pahayag sa pattern-action ug opsyonal nga mga kahulugan sa function.

pattern { action statements }

function name ( lista sa parameter ) { pahayag }

Gawk una nga mabasa ang tinubdan sa programa gikan sa programa-file (s) kon tinino, gikan sa mga argumento ngadto sa - nga gigikanan , o gikan sa unang dili-kapilian nga argumento sa command line. Ang mga opsiyon sa -f ug - nga gigamit mahimong magamit daghang beses sa command line. Gawk mabasa ang programa nga teksto ingon nga ang tanan nga programa-file s ug command line nga mga tinubdan nga mga teksto nga nagkahiusa. Kini mapuslanon sa pagtukod sa mga librarya sa mga gimbuhaton sa AWK, nga dili kinahanglan nga ilakip sila sa matag bag-ong programa sa AWK nga naggamit niini. Naghatag usab kini sa abilidad sa pagsagol sa mga function sa librarya uban sa mga programa sa command line.

Ang environment nga variable AWKPATH nagtino sa usa ka dalan sa pagpangita nga gamiton sa pagpangita sa mga source file nga ginganlan sa -f nga kapilian. Kung wala kini nga variable, ang default nga dalan mao ang ".: / Usr / local / share / awk" . (Ang tinuod nga direktoryo mahimong managlahi, depende kon giunsa ang pagtukod ug pag-instalar.) Kung ang usa ka file nga ngalan nga gihatag ngadto sa -f nga opsyon adunay "` / '' nga karakter, walay pagpangita sa dalan nga ipahigayon.

Ang Gawk nagpatuman sa mga programa sa AWK sa mosunod nga han-ay. Una, ang tanang mga buluhaton nga gikinahanglan nga gitakda pinaagi sa -v nga kapilian gihimo. Sunod, naghimo sa programa ang internal nga porma. Dayon, ang gawk nagpatuman sa code sa BEGIN nga block (s) (kung aduna man), ug unya mabasa ang matag file nga ginganlan sa ARGV array. Kung wala'y mga file nga ginganlan sa command line, ang gawk mabasa ang standard input.

Kung ang usa ka filename sa command line adunay porma nga var = val kini gitagad isip usa ka variable assignment. Ang variable nga var ibutang sa bili nga val . (Kini mahitabo human sa bisan unsang BEGIN block (s) nga gipadagan.) Ang command line variable nga assignment labing mapuslanon alang sa dinamikong paghatag og mga bili sa mga variable nga gamit sa AWK aron makontrol unsaon nga nabuak ang mga input ngadto sa mga nataran ug mga rekord. Kini usab mapuslanon alang sa pagpugong sa estado kung daghan nga mga pass ang gikinahanglan sa usa ka data file.

Kon ang bili sa usa ka partikular nga elemento sa ARGV walay sulod ( "" ), ang gawk naglabay niini.

Alang sa matag rekord sa input, ang mga test gawk aron masuta kung kini ang usa ka sumbanan sa AWK nga programa. Alang sa matag sumbanan nga ang rekord adunay katugbang, ang gipahigayon nga aksyon gipatuman. Ang mga sumbanan gisulayan sa han-ay nga kini mahitabo sa programa.

Sa katapusan, human sa tanan nga mga input nga gikapoy, gawk nagpatuman sa code sa END block (s) (kung aduna man).

Variable, Records, ug Fields

Ang mga variables sa AWK mga dinamiko; kini milungtad sa una nga gigamit. Ang ilang mga mithi mao ang mga numero o linya sa paglutaw, o ang duha, depende kung giunsa kini gigamit. Ang AWK usab adunay usa ka dimensiyon nga arrays; Ang mga arrays nga may daghang mga dimensyon mahimo nga kunohay. Ang ubay-ubay nga gitakda nga mga kapilian nahimo ingon nga usa ka programa nga midagan; kini gihulagway ingon nga gikinahanglan ug gisumada sa ubos.

Mga rekord

Kasagaran, ang mga rekord gibulag sa mga karakter nga newline. Mahimo nimo nga kontrolon kung giunsa ang pagbahin sa mga rekord pinaagi sa paghatag sa mga mithi sa gitukod nga variable nga RS . Kung ang RS bisan usa ka karakter, kana nga kinaiya magbulag sa mga rekord. Kay kon dili, ang RS usa ka regular nga ekspresyon. Ang teksto sa input nga nahiangay sa regular nga ekspresyon nagbahin sa rekord. Bisan pa, sa pagkompirma nga paagi, ang una nga kinaiya sa hilo nga gigamit gigamit alang sa pagbulag sa mga rekord. Kon ang RS gipahimutang sa null nga pisi, unya ang mga rekord gibulag sa blangko nga linya. Sa diha nga ang RS gitakda ngadto sa null string, ang newline nga karakter kanunay nga magsilbing usa ka field separator, dugang pa sa bisan unsang bili nga FS .

Mga Field

Ingon nga mabasa ang matag rekord sa input, gibahin sa gawk ang rekord ngadto sa mga natad , gamit ang bili sa FS variable ingon nga field separator. Kung ang FS usa ka kinaiya, ang mga luna gibahin sa kinaiya. Kon ang FS mao ang null string, nan ang matag indibidwal nga kinaiya mahimong usa ka managlahi nga natad. Kay kon dili, ang FS gilauman nga mahimong usa ka bug-os nga regular nga pagpahayag. Sa espesyal nga kaso nga ang FS usa ka luna, ang mga luna gibahin pinaagi sa pagdagan sa mga luna ug / o mga tab ug / o mga bag-ong linya. (Apan tan-awa ang diskusyon sa - posix , sa ubos). PAHINUMDOM: Ang bili sa IGNORECASE (tan-awa sa ubos) makaapektar usab kung giunsa pagbahin ang mga kaumahan sa dihang ang FS usa ka regular nga ekspresyon, ug kung giunsa ang mga rekord nga nahimulag kung ang RS usa ka regular nga ekspresyon.

Kung ang variable nga FIELDWIDTHS gipahimutang sa usa ka listahan sa mga numero nga gilain sa mga luna, ang matag field gilauman nga adunay gilapdon nga lapad, ug gibagtas ang rekord gamit ang gibag-on nga gilapdon. Ang bili sa FS wala panumbalinga. Ang pagtudlo sa usa ka bag-o nga bili ngadto sa FS mag-override sa paggamit sa FIELDWIDTHS , ug ipasig-uli ang default behavior.

Ang matag field sa rekord sa input mahimo nga gihisgotan sa posisyon niini, $ 1 , $ 2 , ug uban pa. Ang $ 0 mao ang tibuok nga rekord. Ang mga umahan dili kinahanglan nga isaysay sa makanunayon:

n = 5
print $ n

Iimprinta ang ikalimang basahon sa input record.

Ang variable nga NF gibutang sa total nga gidaghanon sa mga natad sa input record.

Ang mga pakisayran sa wala nga mga uma (mga umahan human sa $ NF ) makahimo sa null-string. Apan, ang pag-assign sa usa ka wala nga umaabot (pananglitan, $ (NF + 2) = 5 ) nagdugang sa bili sa NF , nagmugna sa bisan unsa nga nagkalain nga mga natad sa null nga numero ingon nga bili niini, ug hinungdan sa bili sa $ 0 nga gi-recomputed ang mga kaumahan nga gibahin sa bili sa OFS . Ang mga pakisayran sa negatibo nga gipangalan nga mga natad hinungdan sa usa ka makamatay nga sayup. Ang pagkunhod sa NF ang hinungdan sa mga bili sa mga natad sa mga bag-o nga bili nga mawala, ug ang bili sa $ 0 gi-recomputed, nga ang mga kaumahan gibahin sa bili sa OFS .

Ang pagtudlo sa usa ka bili sa usa ka kasamtangan nga natad nagpahinabo nga ang tibuok nga rekord pagatukoron pag-usab kung ang $ 0 isara. Sa susama, ang pag-assign sa usa ka bili ngadto sa $ 0 maoy hinungdan nga ang rekord mahimong kapaskuhan, nga naglalang sa bag-ong mga bili alang sa mga kaumahan.

Gitukod nga mga Variable

Ang gitukod nga mga kabahin sa Gawk mao ang:

ARGC

Ang gidaghanon sa mga argumento sa command line (wala maglakip sa mga kapilian sa gawk , o ang gigikanan sa programa).

ARGIND

Ang index sa ARGV sa kasamtangan nga file nga giproseso.

ARGV

Array sa mga argumento sa command line. Ang array gi-index gikan sa 0 ngadto sa ARGC - 1. Ang dinamikong pagbag-o sa mga sulod sa ARGV makontrol ang mga file nga gigamit alang sa datos.

BINMODE

Sa non-POSIX nga mga sistema, nagtino sa paggamit sa `` binary '' mode alang sa tanang file I / O. Ang numerical values ​​nga 1, 2, o 3, nagtino nga ang input files, output files, o tanan nga mga file, kinahanglan nga magamit ang binary I / O. Ang mga hiyas nga gisudlan sa "r" , o "w" nagtino nga ang input files, o output files, kinahanglan nga magamit ang binary I / O. Ang mga hiyas sa string nga "rw" o "wr" nagtino nga ang tanan nga mga file kinahanglan nga magamit ang binary I / O. Ang bisan unsa nga bili sa hilo nga giisip nga "rw" , apan nagpatunghag usa ka mensahe sa pahimangno.

CONVFMT

Ang pormat sa pagkakabig alang sa mga numero, "% .6g" , pinaagi sa default.

ENVIRON

Usa ka han-ay nga naglangkob sa mga bili sa kasamtangan nga palibot. Ang hugpong girekord sa mga variable sa kalikupan, ang matag elemento mao ang bili sa maong baryohanon (pananglitan, ang ENVIRON ["HOME"] mahimo nga / home / arnold ). Ang pagbag-o niini nga laray dili makaapekto sa palibot nga makita sa mga programa nga nagbuhat sa gawk pinaagi sa pag-redirection o sistema () function.

ERRNO

Kung ang usa ka sistema sa kasaypanan mahitabo sa paghimo sa redirection alang sa getline , atol sa usa ka pagbasa alang sa getline , o sa usa ka suod nga () , unya ang ERRNO adunay usa ka hugpong nga naghulagway sa sayup. Ang bili naa sa paghubad sa dili lokal nga Ingles.

FIELDWIDTHS

Usa ka listahan nga lapad sa lapad nga lugar. Sa dihang gibutang, ang gawk naghubit sa input ngadto sa mga nataran nga gilay-on, imbes nga gamiton ang bili sa FS variable isip ang field separator.

FILENAME

Ang ngalan sa kasamtangan nga input file. Kung walay mga file nga gitino sa command line, ang bili sa FILENAME mao ang `` - ''. Bisan pa, ang FILENAME dili mahubit sa sulod sa block sa BEGIN (gawas nga gitakda sa getline ).

FNR

Ang input record number sa kasamtangan nga input file.

FS

Ang input field separator, usa ka wanang sa default. Tan-awa ang Mga Field , sa ibabaw.

IGNORECASE

Gikontrol ang kaso nga sensitibo sa tanan nga mga regular nga ekspresyon ug mga operasyon sa higot. Kung ang IGNORECASE adunay usa ka wala-zero nga bili, dayon ang pagtandi sa hilo ug pag-igo sa panig-ingnan sa mga lagda, kapatagan nga nagbahin sa FS , rekord nga nahimulag sa RS , regular nga pagpares sa pagsulat sa ~ ug ! ~ , Ug gensub () , gsub () , index () , tugma () , split () , ug sub () mga kinatibuk-ang function nga tanan wala magtagad sa kaso sa paghimo sa regular nga operasyon sa ekspresyon. PAHINUMDOM: Ang paglaraw sa mga ugat wala maapektohan, ni ang asort () function.

Busa, kung ang IGNORECASE dili katumbas sa zero, / aB / nga mohaum sa tanan nga mga strings "ab" , "aB" , "Ab" , ug "AB" . Sama sa tanang mga variables sa AWK, ang inisyal nga bili sa IGNORECASE zero, busa ang tanan nga mga regular nga ekspresyon ug mga operasyon sa mga string kasagaran case-sensitive. Ubos sa Unix, ang bug-os nga ISO 8859-1 Latin-1 nga character set gigamit sa pagbaliwala sa kaso.

LINT

Naghatag og dinamikong pagdumala sa opsiyon sa lint gikan sa sulod sa AWK nga programa. Kung tinuod, ang gawk nag- imprinta sa mga panid sa lyn. Kon dili tinuod, wala kini. Sa diha nga gi-assign ang balor sa hulga nga "makamatay" , ang mga lint pasidaan mahimo nga makamatay nga mga kasaypanan, eksakto sama sa --lint = makamatay . Ang bisan unsa nga tinuod nga bili nag-imprinta og mga pasidaan.

NF

Ang gidaghanon sa mga natad sa kasamtangan nga rekord sa input.

NR

Ang kinatibuk-ang gidaghanon sa mga rekord sa pag-input nga makita sa layo.

OFMT

Ang format sa output alang sa mga numero, "% .6g" , sa default.

OFS

Ang output field separator, usa ka wanang sa default.

ORS

Ang output record separator, sa default usa ka newline.

PROCINFO

Ang mga elemento niini nga laray naghatag og kasayuran sa impormasyon mahitungod sa running AWK nga programa. Sa pipila ka mga sistema, mahimong adunay mga elemento sa laray, "group1" pinaagi sa "grupo n " alang sa pipila n , nga mao ang gidaghanon sa mga suplemento nga mga grupo nga anaa sa proseso. Gamita ang in operator aron sulayan ang mga elemento. Ang mosunod nga mga elemento gigarantiyahan nga magamit:

PROCINFO ["egid"]

ang bili sa getegid (2) system call.

PROCINFO ["euid"]

ang bili sa geteuid (2) system call.

PROCINFO ["FS"]

"FS" kung ang yuta nga nabahin sa FS anaa na sa epekto, o "FIELDWIDTHS" kon ang kapatagan sa FIELDWIDTHS adunay epekto.

PROCINFO ["gid"]

ang bili sa getgid (2) sistema nga tawag.

PROCINFO ["pgrpid"]

ang process group ID sa kasamtangan nga proseso.

PROCINFO ["pid"]

ang proseso ID sa kasamtangan nga proseso.

PROCINFO ["ppid"]

ang proseso sa ginikanan nga ID sa kasamtangan nga proseso.

PROCINFO ["uid"]

ang bili sa getuid (2) sistema nga tawag.

RS

Ang input record separator, pi-na ang usa ka newline.

RT

Ang talaan terminator. Gawk nagtakda RT sa input text nga nahiuyon sa karakter o regular nga ekspresyon nga gitakda sa RS .

RSTART

Ang indeks sa unang karakter nga gipares sa tugma () ; 0 kung walay katugbang. (Kini nagpasabot nga ang mga hiyas sa karakter magsugod sa usa.)

PANAHON

Ang gitas-on sa lambo gipaangay sa tugma () ; -1 kon walay katugbang.

SUBSEP

Ang kinaiya nga gigamit sa pagbulag sa daghang mga subskrip sa mga elemento sa han-ay, pi- naigo sa "\ 034" .

TEXTDOMAIN

Ang teksto nga domain sa programa sa AWK; nga gigamit sa pagpangita sa lokal nga mga hubad sa mga linya sa programa.

Arrays

Ang mga arrays gipahayag nga usa ka ekspresyon tali sa mga square brackets ( [ ug ] ). Kung ang ekspresyon usa ka lista sa ekspresyon ( expr , expr ...) unya ang array subscript usa ka hugpong nga naglangkob sa pagdugtong sa (string) nga bili sa matag ekspresyon, nga gibulag sa bili sa SUBSEP variable. Kini nga pasilidad gigamit aron sa pagsagod sa mga multiply dimensioned arrays. Pananglitan:

i = "A"; j = "B"; k = "C"
x [i, j, k] = "hello, kalibutan \ n"

nag-assign sa hugpong "hello, world \ n" sa elemento sa array x nga gi-indeks sa hugpong "A \ 034B \ 034C" . Ang tanan nga mga arrays sa AWK mga kauban, nga gi-indeks sa mga hiyas nga string.

Ang espesyal nga operator sa paggamit mahimong magamit sa kung o samtang ang pahayag aron sa pagtan-aw kon ang usa ka arrays adunay indeks nga naglangkob sa usa ka partikular nga bili.

kon (val in array) print array [val]

Kon ang laray adunay daghang subskripsyon, gamita ang (i, j) sa han-ay .

Ang sa pagtukod mahimo usab nga gamiton sa usa ka for loop aron iterate ang tanang mga elemento sa usa ka laray.

Ang usa ka elemento mahimong matanggal gikan sa usa ka han-ay gamit ang delete nga pamahayag. Ang delete nga pamahayag mahimo usab nga gamiton aron makuha ang tibuok nga mga sulod sa usa ka han-ay, pinaagi lang sa pagtino sa ngalan sa ngalan nga walay usa ka subskrip.

Variable Typing And Conversion

Ang mga variables ug mga field mahimong (naglutaw nga punto) mga numero, o mga linya, o ang duha. Giunsa nga ang kahulogan sa usa ka variable nga gihubad nagdepende sa konteksto niini. Kon gigamit sa numeric nga ekspresyon, kini pagaisipon ingon nga usa ka numero, kung gamiton ingon nga usa ka hilo kini pagaisipon nga usa ka hilo.

Aron pugsa ang usa ka variable nga pagtratar isip numero, idugang 0 kini; aron ipugos kini nga pagtratar ingon nga usa ka lambo, pagdugtong kini sa null string.

Kung ang usa ka hilo kinahanglan nga nakabig ngadto sa usa ka numero, ang pagkakabig nahimo gamit ang strtod (3). Ang usa ka numero nga nakabig ngadto sa usa ka hilo pinaagi sa paggamit sa bili sa CONVFMT isip usa ka pormat sa string sa sprintf (3), nga adunay numeric value sa variable ingon nga argumento. Bisan pa, bisan tuod ang tanan nga mga numero sa AWK mao ang naglutaw nga punto, ang integral nga mga bili kanunay nga nakabig isip mga integer. Busa, gihatag

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

ang variable b adunay hugut nga balor sa "12" ug dili "12.00" .

Gihimo sa Gawk ang mga pagtandi sama sa mosunod: Kung duha ka mga numero ang numeric, kini itandi sa gidaghanon. Kung ang usa ka bili usa ka numeric ug ang usa adunay usa ka balak nga usa ka numero nga `` numeric string, '' nan ang mga pagtandi gihimo usab sa gidaghanon. Kay kon dili, ang numeric value gibalhin ngadto sa usa ka pisi ug usa ka pagtandi nga hugna ang gihimo. Siyempre, duha ka hilo ang gitandi sama sa mga kuwerdas. Hinumdomi nga ang POSIX nga sumbanan naggamit sa konsepto sa "` numeric string '' bisan diin, bisan sa constants sa string. Bisan pa, kini klaro nga sayop, ug wala kini gibuhat. (Maayo na lang, kini gitakda sa sunod nga bersyon sa sumbanan.)

Hinumdomi nga ang mga konstant nga hilo, sama sa "57" , dili mga hilo nga numeric, sila mga constants nga hilo. Ang ideya sa `` numeric string '' magamit lamang sa mga field, getline input, FILENAME , elemento ARGV , elemento sa ENVIRON ug ang mga elemento sa usa ka array nga gimugna sa split () nga numeric strings. Ang sukaranan nga ideya mao ang input sa user , ug ang input sa user lamang, nga makita ang numeric, kinahanglan nga pagtratar sa ingon niana nga paagi.

Ang mga uninitialized nga mga kapilian adunay numeric value 0 ug ang string value "" (ang null, o walay sulod, hilo).

Octal ug Hexadecimal Constants

Pagsugod sa bersyon 3.1 sa gawk, mahimo nimo gamiton ang C-style octal ug hexadecimal constants sa imong AWK program source code. Pananglitan, ang octal value 011 parehas sa decimal 9 , ug ang hexadecimal value 0x11 katumbas sa decimal 17.

String Constants

Ang mga string nga naglihok sa AWK mao ang mga pagkasunod-sunod sa mga karakter nga gilibotan sa dobleng mga kinutlo ( " ). Sulod sa mga hilisgutan, ang pipila nga mga pagkalagiw giila, sama sa C. Kini mao ang:

\\

Usa ka literal nga backslash.

\ a

Ang `` alert '' nga kinaiya; kasagaran ang ASCII BEL nga kinaiya.

\ b

backspace.

\ f

form-feed.

\ n

Bagong linya.

Ang r

iuli ang karwahe.

\ t

pinahigda nga tab.

\ v

bertikal nga tab.

\ x hex nga mga numero

Ang kinaiya nga girepresentahan sa hugpong sa hexadecimal digits nga nagsunod sa \ x . Sama sa ANSIC, ang tanan nga mosunod nga hexadecimal nga numero giisip nga bahin sa pagkalagiw. (Kini nga bahin kinahanglan maghatag kanato og usa ka butang mahitungod sa pagplano sa pinulongan pinaagi sa komite.) Pananglitan, "ang \ x1B" mao ang kinaiya sa ASCIIESC (makalingkawas).

\ ddd

Ang kinaiya nga gihulagway sa 1-, 2, o 3-digit nga han-ay sa octal nga numero. Pananglitan, "\ 033" ang karakter sa ASCII ESC (makalingkawas).

\ c

Ang literal nga kinaiya c .

Ang mga sunod-sunod nga pagkalagiw mahimo usab nga gamiton sulod sa kanunay nga regular nga mga ekspresyon (eg, / [\ t \ f \ n \ r \ v] / nagtumbok sa mga karakter sa whitespace).

Sa kompyuter nga pagkompirma, ang mga karakter nga girepresentar sa octal ug hexadecimal escape nga mga han-ay gisagubang literal kung gigamit sa regular constants. Busa, ang usa ka 52b / katumbas sa / a \ * b / .

Mga sumbanan ug mga lihok

Ang AWK usa ka pinulongan nga nagsubay sa linya. Ang sumbanan moabut una, ug dayon ang aksyon. Ang aksyon nga mga pahayag gilakip sa { ug } . Tingali ang sulud nawala, o ang aksyon tingali nawala, apan, siyempre, dili pareho. Kung wala ang sumbanan, ang aksyon gipatuman sa matag rekord sa input. Usa ka kulang nga aksyon nga katumbas sa

{print}

nga nag-imprinta sa tibuok nga rekord.

Mga komento magsugod sa `` # '' nga karakter, ug magpadayon hangtud sa katapusan sa linya. Ang mga blangko nga linya mahimong magamit sa pagbulag sa mga pahayag. Kasagaran, ang usa ka pahayag natapos sa usa ka newline, bisan pa, dili kini ang kahimtang sa mga linya nga nagtapos sa usa ka ``, '', { , ? , : , && , o || . Ang mga linya nga nagtapos sa pagbuhat o sa ingon usab ang ilang mga pahayag awtomatikong gipadayon sa mosunod nga linya. Sa ubang mga kaso, ang usa ka linya mahimo nga ipadayon pinaagi sa pagtapos niini uban sa usa ka ', diin nga ang bag-ong linya dili ibalewala.

Ang daghang mga pahayag mahimong ibutang sa usa ka linya pinaagi sa pagbulag kanila sa ``; ''. Kini magamit sa duha ka pahayag sulod sa aksyon nga bahin sa usa ka sumbanan nga aksiyon nga aksyon (ang sagad nga kaso), ug sa mga pahayag sa pattern-action mismo.

Mga sumbanan

Ang mga lagda sa AWK mahimong usa sa mosunod:

BEGIN END / regular expression / relational expression pattern & & pattern pattern || sumbanan nga sumbanan ? sumbanan : sumbanan ( sumbanan ) ! pattern pattern1 , pattern2

Ang BEGIN ug END mao ang duha ka mga espesyal nga matang sa mga sumbanan nga wala masulayan batok sa input. Ang aksyon nga mga bahin sa tanan nga BEGIN nga mga sumbanan gisagol sama sa kung ang tanang mga pamahayag gisulat sa usa ka block sa BEGIN . Gipamatay sila sa wala pa mabasa ang input. Sa susama, ang tanan nga mga bloke sa END gisagol, ug gipatuman sa dihang ang tanan nga input nahuya (o sa dihang ang exit statement gipatuman). Ang BEGIN ug END nga mga sumbanan dili mahimong ikombinar sa uban nga mga sumbanan sa mga pagpakita sa sumbanan. Ang BEGIN ug END pattern dili adunay kulang nga mga bahin sa aksyon.

Alang sa / regular nga ekspresyon / mga sumbanan, ang nalambigit nga pahayag gipatuman alang sa matag rekord sa input nga katugbang sa regular nga ekspresyon. Ang mga regular nga ekspresyon susama sa mga anaa sa egrep (1), ug gisumada sa ubos.

Ang ekspresyon sa relational mahimong gamiton ang bisan kinsa sa mga operators nga gihubit sa ubos sa seksyon sa mga aksyon. Sa kasagaran kini nga pagsulay kon ang pipila ka mga laray nagsunod sa pipila ka mga regular nga pagpahayag.

Ang && , || , ug ! Ang mga operators logical nga AT, makatarunganon OR, ug lohikal nga DILI, matag usa, sama sa C. Sila naghimo ug mubo nga pagtimbang nga pagtimbang, ingon usab sa C, ug gigamit alang sa paghiusa sa labaw pa nga mga pamahayag nga sumbanan. Sama sa kadaghanan sa mga pinulongan, ang parentheses mahimong gamiton aron mausab ang han-ay sa pagtimbang-timbang.

Ang operator: sama sa sama nga operator sa C. Kung ang unang sumbanan tinuod, ang sumbanan nga gigamit sa pagsulay mao ang ikaduha nga sumbanan, kung dili kini mao ang ikatulo. Usa lamang sa ikaduha ug ikatulo nga mga sumbanan ang gibana-bana.

Ang sumbanan1 , pattern2 nga porma sa usa ka ekspresyon gitawag nga usa ka sulud nga matang . Nakasumpo kini sa tanan nga mga rekord sa input nga gisugdan sa usa ka rekord nga nahiangay sa pattern1 , ug nagpadayon hangtud nga ang usa ka talaan nga adunay kapareha nga pattern2 , inclusive. Kini wala magsagol sa bisan unsang lain nga matang sa ekspresyon nga sumbanan.

Regular nga Pagpahayag

Ang kanunay nga pagpahayag mao ang gipalugdang matang nga makita sa egrep . Kini gilangkuban sa mga karakter sama sa mosunod:

c

motakdo sa non-metacharacter c .

\ c

nahiuyon sa literal nga kinaiya c .

.

ang bisan unsang kinaiya nga naglakip sa newline.

^

nagtugma sa sinugdanan sa hilo.

$

ang katugbang sa katapusan sa usa ka hilo.

[ abc ... ]

lista sa kinaiya, nahiuyon sa bisan unsang mga karakter abc ....

[^ abc ... ]

gipanghimakak nga lista sa kinaiya, nahiuyon sa bisan unsang kinaiya gawas sa abc ....

r1 | r2

Ang alternatibo: adunay r1 o r2 .

r1r2

pag-concatenation: dunay r1 , ug dayon r2 .

r +

adunay mga usa o labaw pa nga mga r .

r *

nagpares sa zero or more r 's.

r ?

Ang mga katumbas sa zero o usa ka r .

( r )

pag-grupo: mga r .

r { n }

r { n ,}

r { n , m } Ang usa o duha ka numero sulod sa mga kuptanan nagpakita sa usa ka interval nga ekspresyon . Kung adunay usa ka numero sa mga kuptanan, ang nauna nga regular nga ekspresyon nga r gibalikbalik nga mga panahon. Kung adunay duha ka numero nga gibulag sa usa ka koma, ang r gisubli n sa m nga mga panahon. Kon adunay usa ka numero nga gisundan sa usa ka comma, nan ang r gibalik-balik labing menos n nga mga panahon.

Mahimong mabatonan lamang ang agianan nga mga ekspresyon kung ang - posix o - re-interval gitino sa command line.

\ y

Nagpasabot sa walay sulod nga pisi sa sinugdanan o sa katapusan sa usa ka pulong.

B

Nagpasabot sa walay sulod nga pisi sulod sa usa ka pulong.

<

Nagpasabot sa walay sulod nga pisi sa sinugdanan sa usa ka pulong.

\>

Nagpasabot sa walay sulod nga hugpong sa katapusan sa usa ka pulong.

\ w

motakdo sa bisan unsang kinaiya nga naglangkob sa pulong (sulat, digit, o underscore).

W

ang bisan unsang kinaiya nga dili pulong-constituent.

\ `

Nagpasabot sa walay sulod nga pisi sa sinugdanan sa usa ka buffer (hugpong).

'

Nagpasabot sa walay sulod nga pisi sa katapusan sa usa ka buffer.

Ang mga sunod-sunod nga pagkalagiw nga balido sa mga constants sa string (tan-awa sa ubos) usab balido sa regular nga mga ekspresyon.

Ang mga klase sa karakter usa ka bag-o nga bahin nga gipaila sa POSIX standard. Ang usa ka kinaiya nga klase usa ka espesyal nga notasyon sa paghulagway sa mga lista sa mga karakter nga adunay usa ka piho nga kinaiya, apan diin ang aktwal nga mga karakter sa ilang kaugalingon mahimong magkalain-laing gikan sa usa ka nasud ngadto sa nasud ug / Pananglitan, ang ideya sa unsay usa ka alphabetic nga karakter lahi sa USA ug sa France.

Usa ka klase sa karakter ang balido lamang sa usa ka regular nga ekspresyon sa sulod sa mga braket sa usa ka lista sa karakter. Ang mga klase sa karakter naglakip sa [: , usa ka keyword nga nagtumong sa klase, ug :] . Ang mga klase sa kinaiya nga gihubit sa POSIX nga sumbanan mao ang:

[: alnum:]

Alphanumeric nga mga karakter.

[: alpha:]

Mga alpabetong karakter.

[: blank:]

Mga espasyo o tab nga mga karakter.

[: cntrl:]

Kontrol ang mga karakter.

[: digit:]

Mga numero sa numero.

[: graph:]

Ang mga karakter nga mahimong i-imprinta ug makita. (Ang usa ka luna mahimo maimprinta, apan dili makita, samtang ang usa ka duha.)

[: ubos nga:]

Mga alpabeto nga lower case.

[: print:]

Maimprinta nga mga karakter (mga karakter nga dili kontrol sa mga karakter.)

[: punct:]

Ang mga simbolo sa punctuation (mga karakter nga dili sulat, numero, pagkontrol sa mga karakter, o mga karakter sa luna).

[: luna:]

Luna nga mga karakter (sama sa luna, tab, ug porma, aron paghingalan og pipila).

[: ibabaw:]

Mga dagway sa alphabetic nga upper-case.

[: xdigit:]

Ang mga numero nga hexadecimal digit.

Pananglitan, sa wala pa ang POSIX nga sumbanan, aron sa pagparis sa mga alphanumeric nga mga karakter, kinahanglan nimo nga isulat / [A-Za-z0-9] / . Kung ang imong character set dunay lain pang alpabetikong mga karakter nga naa niini, dili kini matandi kanila, ug kung ang imong character nga gitakdo nagkalahi gikan sa ASCII, dili kini matandi sa mga alphanumeric sa ASCII. Uban sa POSIX nga mga klase sa kinaiya, mahimo nimo isulat ang / [[: alnum:]] / , ug kini ang katumbas sa alphabetic ug numeric nga mga karakter sa imong character set.

Duha ka dugang nga espesyal nga han-ay ang makita diha sa mga lista sa karakter. Kini mapadapat ngadto sa dili mga ASCII nga mga character set, nga adunay mga simbolo nga gitawag ( collating elements ) nga gihulagway nga adunay labaw sa usa ka karakter, ingon man usab sa daghang mga karakter nga katumbas sa pag- collate , o pag-sort, mga katuyoan. (Pananglitan, sa Pranses, usa ka patag nga `` e '' ug usa ka lubnganan nga accented e` mao ang katumbas.)

Mga Collating Symbols

Ang usa ka collating nga simbolo mao ang elemento sa collating nga multi-character nga giluklok sa [. ug .] . Pananglitan, kung ang ch usa ka elemento nga collating, nan ang [[.ch.]] Usa ka regular nga ekspresyon nga nahiuyon niining elemento nga collating, samtang ang [ch] usa ka regular nga ekspresyon nga nahiangay sa c o h .

Pagkapareha sa mga klase

Ang klase sa pagkapareha usa ka ngalan sa lokal nga ngalan alang sa lista sa mga karakter nga parehas. Ang ngalan gilakip sa [= ug =] . Pananglitan, ang e ngalan mahimong gamiton sa pag representa sa tanan nga mga e, e, e, ug e nga. Sa kini nga kaso, ang [[= e =]] usa ka regular nga ekspresyon nga Nagpasabot sa bisan unsang e , e ' , o e` .

Kini nga mga bahin bililhon kaayo sa mga dili pinulongang lokal nga pinulongan. Ang mga gimbuhaton sa librarya nga gigamit sa gawk alang sa regular nga pagpahayag sa ekspresyon sa kasamtangan lamang nakaila sa POSIX nga mga klase sa kinaiya wala nila giila ang mga simbolo sa paghugpong o pagkapares.

Ang \ y , \ B , \ < , \> , \ w , \ W , \ ` , ug \ 'ang mga operator tukma sa gawk ; kini mga ekstensyon nga gibase sa mga pasilidad sa mga regular nga eksperto sa GNU nga ekspresyon.

Ang nagkalainlain nga mga opsyon sa linya sa kombinasyon nagapugong kung giunsa paghubad sa mga karakter ang regular nga mga ekspresyon.

Walay mga kapilian

Sa default nga kaso, gawk naghatag sa tanan nga mga pasilidad sa POSIX regular nga mga ekspresyon ug ang GNU regular nga ekspresyon nga mga eksperto nga gihulagway sa ibabaw. Bisan pa, ang mga ekspresyon sa interval wala gisuportahan.

- Pixix

Ang POSIX lamang nga mga regular nga ekspresyon gisuportahan, ang mga opereytor sa GNU dili espesyal. (Pananglitan, ang tugma usa ka literal nga w ). Gitugutan ang interval nga mga ekspresyon.

- talahuron

Ang tradisyonal nga Unix awk regular nga mga ekspresyon nahiangay. Ang mga opereytor sa GNU dili mga espesyal nga ekspresyon sa interval nga dili makita, ug ang POSIX nga mga klase sa kinaiya ( [[: alnum:]] ug uban pa). Ang mga karakter nga gihulagway sa mga han-ay sa octal ug hexadecimal makalingkawas sa literal nga paagi, bisan kung kini nagrepresentar sa regular nga ekspresyon nga metacharacters.

--re-interval

Tugoti ang mga ekspresyon sa interval sa regular nga mga ekspresyon, bisan kung - gitagaan ang gihatag.

Mga aksyon

Ang aksyon nga mga pahayag gilakip sa mga brace, { ug } . Ang aksyon nga mga pamahayag naglangkob sa naandan nga buluhaton, kondisyonal, ug panglantaw nga mga pahayag nga makita sa kadaghanang pinulongan. Ang mga opereytor, pagkontrol sa mga pahayag, ug ang mga pahayag sa input / output nga anaa mahilig sa mga anaa sa C.

Mga operator

Ang mga operators sa AWK, sumala sa pagkunhod sa nauna, mao ang

( ... )

Pagpundok

$

Pagtumong sa uma.

++ -

Pag-uswag ug pagkunhod, ang prefix ug postfix.

^

Ang exponentiation ( ** mahimo usab nga gamiton, ug ** = alang sa assignment operator).

+ -!

Unary plus, unary minus, ug logical negation.

* /%

Pagpadaghan, pagbahin, ug modulus.

+ -

Pagdugang ug pagbuhin.

luna

Pagdugtong nga linya.

<>

<=> =

! = == Ang regular nga mga operator sa relational.

~! ~

Ang regular nga pagpares sa pagpahayag, gipanghimakak nga dula. PAHINUMDOM: Ayaw paggamit sa regular nga ekspresyon ( / foo / ) sa wala nga bahin sa usa ka ~ o ! ~ . Gamita lamang ang usa sa tuo nga kiliran. Ang ekspresyon / foo / ~ exp adunay sama nga kahulogan sa (($ 0 ~ / foo /) ~ exp ) . Kini kasagaran dili mao ang gituyo.

sa

Pagpasakop sa mga miyembro.

&&

LOGIKO UG.

||

Makataronganon O.

?

Ang C conditional expression. Kini adunay porma nga expr1 ? expr2 : expr3 . Kung ang expr1 tinuod, ang bili sa ekspresyon nga expr2 , kung dili kini expr3 . Usa lamang sa expr2 ug expr3 ang gibana-bana.

= + = - =

* = / =% = ^ = Assignment. Ang duha ka hingpit nga buluhaton ( var = value ) ug operator-assignment (ang uban nga mga porma) gisuportahan.

Mga Pahayag sa Kontrol

Ang pagkontrol sa mga pahayag mao ang mosunod:

kung ang ( kondisyon ) pahayag [ laing pahayag ] samtang ( kondisyon ) nga pamahayag ang maghatag pahayag samtang ( kondisyon ) alang sa ( expr1 ; expr2 ; expr3 ) nga pahayag alang sa ( var in array ) mga pahayag

Mga pahayag sa I / O

Ang mga pahayag sa input / output mao ang mosunod:

duol ( file [ , giunsa ] )

Close file, pipe o co-process. Ang opsyonal kung giunsa kinahanglan gamiton lamang sa pagtapos sa usa ka tumoy sa usa ka duha ka tubo nga tubo ngadto sa co-process. Kini kinahanglan nga usa ka balor sa hilisgutan, bisan "sa" o "gikan sa" .

getline

Ibutang ang $ 0 gikan sa sunod nga rekord sa input; nagbutang sa NF , NR , FNR .

getline < file

Ibutang ang $ 0 gikan sa sunod nga record sa file ; ibutang ang NF .

getline var

Paghimo og var gikan sa sunod nga rekord sa input; pagbutang sa NR , FNR .

getline var < file

Ibutang ang var gikan sa sunod nga rekord sa file .

sugo | getline [ var ]

Pagdumala sa pag- instalar sa linya sa output ngadto sa $ 0 o var , sama sa ibabaw.

sugo | & getline [ var ]

Pagdumala nga komando ingon nga co-proseso nga pag-piping sa output ngadto sa $ 0 o var , sama sa ibabaw. Ang mga co-process usa ka extension sa gawk .

sunod

Hunong sa pagproseso sa kasamtangan nga rekord sa input. Ang sunod nga rekord sa input ang basahon ug ang pagproseso magsugod sa unang sulud sa programa sa AWK. Kon ang katapusan sa input data maabot, ang END block (s), kung aduna, ipatuman.

nextfile

Hunong sa pagproseso sa kasamtangan nga input file. Ang sunod nga input record nga mabasa nagagikan sa sunod nga input file. Ang FILENAME ug ARGIND gi-update, ang FNR gi-reset sa 1, ug ang pagproseso magsugod sa una nga sumbanan sa programa sa AWK. Kon ang katapusan sa input data maabot, ang END block (s), kung aduna, ipatuman.

pag-imprinta

Kopya ang kasamtangan nga rekord. Ang rekord sa output natapos uban sa bili sa variable ORS .

print nga expr-list

Nag-imprinta nga mga ekspresyon. Ang matag ekspresyon gibahin sa bili sa OFS variable. Ang rekord sa output natapos uban sa bili sa variable ORS .

print nga expr-list > file

Nag-imprinta mga ekspresyon sa file . Ang matag ekspresyon gibahin sa bili sa OFS variable. Ang rekord sa output natapos uban sa bili sa variable ORS .

printf fmt, expr-list

Pag-format ug i-print.

printf fmt, expr-list > file

Pag-format ug i-print sa file .

sistema ( cmd-linya )

Ipatuman ang command cmd-line , ug ibalik ang status sa exit. (Kini dili mahimo sa mga dili POSIX nga mga sistema.)

fflush ( [ file ] )

I-flush ang bisan unsang buffers nga may kalabutan sa open output file o pipe file . Kung wala ang file , dayon ang standard nga output mahubas. Kung ang file mao ang null string, nan ang tanan nga open output files ug pipes adunay mga buffers nga nahubas.

Ang dugang nga redirections sa pag-uswag gitugot alang sa print ug printf .

print >> ... file

nagdala sa output ngadto sa file .

print ... | sugo

nagsulat sa usa ka plawta.

print ... | & sugo

nagpadala sa datos ngadto sa co-process.

Ang command sa getline mobalik 0 sa katapusan sa file ug -1 sa usa ka sayop. Diha sa sayop, ang ERRNO adunay usa ka hugpong nga naghulagway sa problema.

PAHINUMDOM: Kung gamiton ang usa ka pipe o co-process aron makakuha og linya , o gikan sa print o printf sulod sa usa ka loop, kinahanglang gamiton ang suod () aron makahimo og bag-ong mga higayon sa sugo. Ang AWK dili awtomatik nga magsira sa mga tubo o mga co-proseso kung sila mobalik sa EOF.

Ang pahayag sa printf

Ang mga bersyon sa AWK sa printf nga pahayag ug sprintf () function (tan-awa ang sa ubos) modawat sa mosunod nga mga format sa pagpangita sa pagkakabig:

% c

Usa ka karakter nga ASCII. Kon ang argumento nga gigamit alang sa % c adunay numeric, kini giisip nga usa ka kinaiya ug giimprinta. Kay kon dili, ang argumento gituohan nga usa ka lambo, ug ang una nga kinaiya sa hilo nga giimprinta.

% d , % i

Usa ka decimal nga gidaghanon (ang integer nga bahin).

% e,% E

Usa ka naglutaw nga numero sa numero sa porma [-] d.dddddde [+ -] dd . Ang format sa % E naggamit sa E imbis nga e .

% f

Usa ka naglutaw nga numero sa porma sa porma [-] ddd.dddddd .

% g,% G

Gamita ang % e o % f nga pagkakabig, unsa man ang mas mubo, uban ang mga dili importante nga mga zero nga gipugngan. Ang format sa G naggamit % E imbis % e .

% o

Usa ka unsigned number octal (usab usa ka integer).

% u Usa ka unsigned decimal nga numero (usab, usa ka integer).

% s

Usa ka kinaiya nga kinaiya.

% x,% X

Usa ka unsigned hexadecimal number (usa ka integer). Ang format sa % X naggamit sa ABCDEF imbis nga abcdef .

%%

Usa ka single nga kinaiya; walay argumento nga nakabig.

Ang opsyonal, dugang nga mga parameter mahimong mahimutang tali sa % ug sa kontrol nga sulat:

pag-ihap $

Gamita ang count 'nga argumento sa niini nga punto sa formatting. Gitawag kini nga positional specifier ug gituyo aron gamiton sa gihubad nga mga bersiyon sa mga porma sa pormat, dili sa orihinal nga teksto sa usa ka programa sa AWK. Kini usa ka extension sa gawk .

-

Ang ekspresyon kinahanglan ibilin-nga gipasikaran sulod sa iyang natad.

luna

Alang sa mga pag-usab sa numeric, ang prefix positibo nga mga hiyas nga adunay luna, ug negatibo nga mga bili nga adunay minus nga timaan.

+

Ang dugang nga karatula, nga gigamit sa wala pa ang width modifier (tan-awa sa ubos), nag-ingon nga kanunay nga magahatag sa usa ka ilhanan alang sa mga pag-usab sa numero, bisan pa nga ang datos nga maporma positibo. Gipahamtang sa + ang modifier sa espasyo.

#

Gamita ang usa ka `` alternate form '' alang sa pipila ka kontrol nga mga sulat. Alang sa % o , ihatag ang una nga zero. Alang sa % x , ug % X , paghatag sa usa ka nag-unang 0x o 0X alang sa usa ka nonzero nga resulta. Alang sa % e , % E , ug % f , ang resulta kanunay naglakip sa usa ka desimal nga punto. Alang sa % g , ug % G , ang naga-trailing zero dili makuha gikan sa resulta.

0

Ang usa ka nag-unang 0 (zero) molihok ingon nga usa ka bandila, nga nagpakita nga ang output kinahanglan nga gipanglimbasog nga adunay zeroes imbis nga mga luna. Kini magamit bisan sa mga format nga output nga dili-numerik. Kini nga bandila adunay epekto kung ang lapad nga lapad mas lapad kay sa bili nga ipa-imprinta.

lapad

Ang luna kinahanglan ibutang sa gilapdon niini. Ang kapatagan kasagaran giputos sa mga luna. Kon ang 0 nga bandila gigamit na, kini adunay mga sapin nga may mga zeroes.

. prec

Ang gidaghanon nga nagtino sa katukma nga gamiton sa pag-imprinta. Alang sa % e , % E , ug % f nga mga format, kini nagtino sa gidaghanon nga mga numero nga gusto nimo nga iimprinta sa tuo sa desimal nga punto. Alang sa % g , ug % G format, kini nagtino sa maximum nga gidaghanon sa mahinungdanon nga digit. Alang sa % d , % o , % i , % x , % x , ug % X nga mga format, kini nagpunting sa minimum nga gidaghanon sa mga digit aron i-print. Alang sa % s , nagtino ang maximum nga gidaghanon sa mga karakter gikan sa hilo nga kinahanglan i-imprinta.

Ang dinamikong paglapad ug prec capabilities sa ANSI C printf () nga mga kalihokan gisuportahan. Usa ka * puli sa gilapdon o prec prec specifications ang hinungdan sa ilang mga bili nga makuha gikan sa listahan sa argumento sa printf o sprintf () . Aron magamit ang usa ka positional specifier nga adunay usa ka dinamikong gilapdon o katukma, ipanghatag ang $ pagkahuman sa * sa format nga pisi. Pananglitan, "% 3 $ * 2 $. * 1 $ s" .

Espesyal nga Mga Ngalan sa File

Sa diha nga ang pag-redirect sa I / O gikan sa print o printf ngadto sa usa ka file, o pinaagi sa getline gikan sa usa ka file, ang gawk miila sa pipila ka mga espesyal nga filename nga sulod sa sulod. Kini nga mga ngalan sa filenames nagtugot sa pag-abli sa mga file descriptors nga napanunod gikan sa proseso sa ginikanan sa gawk (kasagaran ang kabhang). Kini nga mga ngalan sa file mahimo usab nga gamiton sa command line aron sa paghingalan sa mga file sa datos. Ang mga ngalan sa filipino mao ang:

/ dev / stdin

Ang standard nga input.

/ dev / stdout

Ang naandan nga output.

/ dev / stderr

Ang standard nga output sa sayup.

/ dev / fd / n

Ang file nga may kalabutan sa open file descriptor n .

Kini ilabi na nga mapuslanon alang sa mga mensahe nga sayup. Pananglitan:

giimprenta "Imong gihuyop kini!" > "/ dev / stderr"

samtang ikaw kinahanglan nga magamit

giimprenta "Imong gihuyop kini!" | "cat 1> & 2"

Ang mosunod nga espesyal nga mga pangalan sa filename mahimo gamiton sa & & co-process operator alang sa pagmugna sa koneksyon sa TCP / IP network.

/ inet / tcp / lport / rhost / rport

File alang sa koneksyon sa TCP / IP sa lokal nga port lport ngadto sa remote host rhost sa remote port rport . Paggamit sa usa ka pantalan nga 0 aron ang sistema mopili sa usa ka pantalan.

/ inet / udp / lport / rhost / rport

Susama, apan paggamit sa UDP / IP kay sa TCP / IP.

/ inet / raw / lport / rhost / rport

Gitagana alang sa umaabot nga paggamit.

Ang ubang mga espesyal nga filenames naghatag og kasayuran sa impormasyon mahitungod sa running gawk process. Kini nga mga pangalan sa filename wala na karon. Gamita ang array sa PROCINFO aron makuha ang kasayuran nga ilang gihatag. Ang mga ngalan sa filipino mao ang:

/ dev / pid

Ang pagbasa niini nga file nagbalik sa proseso sa ID sa kasamtangan nga proseso, sa desimal, gitapos uban sa usa ka newline.

/ dev / ppid

Ang pagbasa niini nga file nagbalik sa proseso sa ginikanan nga ID sa kasamtangan nga proseso, sa desimal, gitapos uban ang usa ka newline.

/ dev / pgrpid

Ang pagbasa niini nga file nagbalik sa proseso sa grupo ID sa kasamtangan nga proseso, sa desimal, gitapos uban ang usa ka newline.

/ dev / user

Ang pagbasa niini nga file nagbalik sa usa ka rekord nga gitapos uban sa usa ka newline. Ang mga kaumahan gibahin sa mga luna. Ang $ 1 mao ang kantidad sa tawag sa system nga getuid (2), ang $ 2 mao ang bili sa tawag nga sistema sa geteuid (2), $ 3 ang bili sa getgid (2) sistema nga tawag, ug $ 4 ang bili sa getegid (2) sistema sa pagtawag. Kung adunay dugang nga mga natad, sila ang mga ID sa grupo nga gibalik sa mga getgroup (2). Ang daghang grupo dili mahimong suportado sa tanang sistema.

Mga Numero nga Pag-andam

Ang AWK adunay mosunod nga mga gamit sa aritmetika:

atan2 ( y , x )

Mibalik ang arctangent sa y / x sa radians.

COS ( expr )

Gipabalik ang cosine sa expr , nga anaa sa mga radians.

exp ( expr )

Ang pagpalapnag nga function.

int ( expr )

Nagkutkot sa integer.

log ( expr )

Ang kinaiyanhon nga logarithm function.

rand ()

Mibalik sa usa ka random nga gidaghanon tali sa 0 ug 1.

sala ( expr )

Mibalik sa sine sa expr , nga anaa sa radians.

sqrt ( expr )

Ang kwadro nga gimbuhaton.

srand ( [ expr ] )

Naggamit sa expr isip bag-ong binhi alang sa random number generator. Kon walay gihatag nga expr , ang oras sa adlaw gigamit. Ang bili sa pagbalik mao ang naunang binhi alang sa random number generator.

Mga Sumpay sa String

Ang Gawk adunay mosunod nga mga gimbuhaton:

asort ( s [ , d ] )

Gipabalik ang gidaghanon sa mga elemento sa source array s . Ang mga sulod sa mga giusob gamit ang normal nga mga lagda sa gawk alang sa pagtandi sa mga mithi, ug ang mga index sa mga gi sunod nga mga bili sa s gipulihan sa sequential integers sugod sa 1. Kon ang optional nga destination d d gihisgutan, unya ang unang gisundog ngadto sa d , ug unya d gisunod, ibilin ang mga index sa source array nga dili mausab.

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

Pangitaa ang target nga string t alang sa mga tugma sa regular nga ekspresyon r . Kung ang h usa ka hugpong nagsugod sa g o G , unya ipuli ang tanan nga mga tugma sa r sa s . Kay kon dili, ang h usa ka numero nga nagpakita kung diin ang match sa r aron mapulihan. Kung ang t wala gihatag, $ 0 ang gigamit sa baylo. Sulod sa kapalit nga text s , ang pagkasunod \ n , diin ang n usa ka digit gikan sa 1 ngadto sa 9, mahimo nga gamiton aron ipakita lamang ang teksto nga nahiangay sa n parenthesized subexpression. Ang pagkasunod \ 0 nagrepresentar sa tibuok nga gipares nga teksto, ingon man ang kinaiya & . Dili sama sa sub () ug gsub () , ang giusab nga hugpong gibalik isip resulta sa function, ug ang orihinal nga target nga string wala mausab.

gsub ( r , s [ , t ] )

Alang sa matag substring nga pagtutugma sa regular nga ekspresyon r sa string t , ipuli ang pisi s , ug ibalik ang gidaghanon sa mga kapuli. Kung ang t wala gihatag, gamita $ 0 . Ang & sa kapuli nga teksto gipulihan sa teksto nga tinuod nga gipares. Paggamit \ & aron makakuha og literal & . (Kini kinahanglan nga isulat ingon "\\ &" ; tan-awa ang GAWK: Epektibo nga AWK Programming alang sa usa ka bug-os nga paghisgot sa mga lagda alang sa & usba nga mga paningkamot sa kapuli nga teksto sa sub () , gsub () , ug gensub () .)

index ( s , t )

Gipabalik ang index sa string t sa string s , o 0 kung wala ang t . (Kini nagpasabot nga ang mga hiyas sa karakter magsugod sa usa.)

gitas-on ( [ s ] )

Gipabalik ang gitas-on sa pisi nga s , o ang gitas-on sa $ 0 kung dili gihatag.

match ( s , r [ , a ] )

Gipabalik ang posisyon sa s diin ang regular nga ekspresyon r mahitabo, o 0 kung wala ang r , ug gipahimutang ang mga bili sa RSTART ug RLENGTH . Hinumdomi nga ang order nga argumento parehas sa ~ operator: str ~ re . Kon ang array usa nga gihatag, ang usa mapapas ug dayon ang mga elemento 1 ngadto n gipuno sa mga bahin sa s nga katugbang sa katumbas nga parenthesized subexpression sa r . Ang ika-0 nga elemento sa usa ka naglangkob sa bahin sa s nga gipares sa tibuok regular nga ekspresyon r .

split ( s , a [ , r ))

Gihiwit ang hugpong s ngadto sa hanay sa usa ka regular nga ekspresyon r , ug gibalik ang gidaghanon sa mga kaumahan. Kung wala gisalikway, ang FS gigamit. Ang laray a nahuptan una. Ang nagkalainlain nga mga buhat parehas sa pagbahinbahin sa kapatagan, gihulagway sa ibabaw.

sprintf ( fmt , expr-list )

Nag-print expr-list sumala sa fmt , ug gibalik ang resulta string.

Strong (Str )

Nagtan-aw sa str , ug nagbalik sa numeric value niini. Kung ang str nagsugod sa usa ka nag-unang 0 , ang strtonum () nag-ingon nga ang str usa ka octal number. Kon ang str nagsugod sa usa ka nag-unang 0x o 0X , ang strtonum () nag-ingon nga ang str usa ka numero sa hexadecimal.

sub ( r , s [ , t ] )

Sama sa gsub () , apan ang una nga gipares nga substring ang gipulihan.

substr ( s , i [ , n ] )

Gipabalik sa kadaghanan n- substring sa n. S nagsugod sa i . Kung n ang wala, ang nahabilin sa s gigamit.

tolower ( str )

Gipabalik ang usa ka kopya sa pisi nga hilo, uban ang tanan nga mga dagway sa mga dagway nga gihubad ngadto sa ilang katugbang nga mga katumbas sa ubos nga kaso. Ang mga karakter nga dili alpabetiko wala mausab.

toupper ( str )

Gipabalik ang usa ka kopya sa strab string, uban ang tanan nga mga lower-case nga mga karakter nga gihubad ngadto sa ilang katugbang nga mga katugbang sa dagkong kaso. Ang mga karakter nga dili alpabetiko wala mausab.

Mga Function sa Oras

Tungod kay ang usa sa mga nag-una nga paggamit sa mga programa sa AWK mao ang pagproseso sa mga log nga mga file nga adunay impormasyon sa oras nga selyo, ang gawk naghatag sa mosunod nga mga gimbuhaton alang sa pag-angkon og mga time stamp ug pag-format niini.

mktime ( datepec )

Gihimo ang mga datepec sa usa ka time stamp sa susama nga porma nga ibalik sa systime () . Ang mga datepec usa ka hugpong sa porma nga YYYY MM DD HH MM SS [DST] . Ang unod sa lambo mao ang unom o pito nga mga numero nga nagrepresentar sa tinagsa sa tibuok nga tuig lakip ang siglo, ang bulan gikan sa 1 ngadto sa 12, ang adlaw sa bulan gikan sa 1 ngadto sa 31, ang oras sa adlaw gikan sa 0 ngadto sa 23, ang minuto gikan 0 59, ug ang ikaduha gikan 0 ngadto sa 60, ug usa ka opsyonal nga daylight saving flag. Ang mga bili niini nga mga numero dili kinahanglan sulod sa gilay-on nga gitino; pananglitan, usa ka oras sa -1 nagpasabot 1 ka oras sa wala pa tungang gabii. Ang gigikanan-zero Gregorian nga kalendaryo gituohan, uban sa tuig 0 nga nag-unang tuig 1 ug tuig -1 nga nag-unang tuig 0. Ang panahon gituohan nga anaa sa lokal nga timezone. Kung ang daylight saving flag positibo, ang panahon gituohan nga daylight saving time; kung zero, ang oras gituohan nga mao ang standard nga panahon; ug kon negatibo (ang default), ang mktime () mosulay sa pagtino kung ang oras sa pagdaginot sa panahon anaa sa epekto sa gitakda nga panahon. Kon ang mga datepec walay sulod nga mga elemento o kung ang resulta nga panahon wala sa range, ang mktime () mobalik -1.

strftime ( [ format [ , timestamp ]] )

Mga porma sa timestamp sumala sa pormat sa pormat. Ang timestamp kinahanglan nga parehas nga porma nga ibalik sa systime () . Kon ang timestamp nawala, ang kasamtangan nga oras sa adlaw gigamit. Kung nawala ang format , usa ka default nga format nga katumbas sa output sa petsa (1) gigamit. Tan-awa ang espesipikasyon sa function sa strftime () sa ANSI C alang sa mga pag-usab sa format nga gigarantiyahan nga magamit. Usa ka public-domain nga bersyon sa strftime (3) ug usa ka tawo nga panid alang niini nag-uban sa gawk ; kung kana nga bersyon gigamit sa pagtukod sa gawk , nan ang tanan nga mga pagkakabig nga gihulagway diha sa pahina sa tawo mahimo nga magamit .

systime ()

Gipabalik ang kasamtangan nga oras sa adlaw ingon nga gidaghanon sa mga segundo sukad sa Epoch (1970-01-01 00:00:00 UTC sa mga sistema sa POSIX).

Mga Manipulasyon nga Gamay

Sugod sa bersyon 3.1 sa gawk , ang mosunod nga gamay nga manipulasyon sa mga function anaa. Nagtrabaho sila pinaagi sa pagkabig sa double-precision floating point values ​​ngadto sa unsigned long integers, paghimo sa operasyon, ug dayon pag-usab sa resulta balik ngadto sa floating point. Ang mga gimbuhaton mao ang:

ug ( v1 , v2 )

Ibalik ang bitwise ug ang mga bili nga gihatag sa v1 ug v2 .

compliment ( val )

Ibalik ang bitwise nga katimbang sa val .

lshift ( val , ihap )

Ibalik ang bili sa val , gibalhin sa wala nga mga numero .

o ( v1 , v2 )

Ibalik ang bitwise O sa mga bili nga gihatag sa v1 ug v2 .

rshift ( val , ihap )

Ibalik ang bili sa val , ibalhin sa tuo pinaagi sa mga bits.

xor ( v1 , v2 )

Ibalik ang bitwise XOR sa mga bili nga gihatag sa v1 ug v2 .

Internasyonal nga mga Katungdanan

Sugod sa bersyon 3.1 sa gawk , ang mosunod nga mga gimbuhaton mahimong gamiton gikan sa sulod sa imong AWK nga programa alang sa paghubad sa mga lagda sa run-time. Alang sa mga detalye, tan-awa ang GAWK: Epektibo nga AWK Programming .

bindtextdomain ( direktoryo [ , domain ] )

Gitino ang direktoryo diin makita ang mga file, kung dili kini o dili mahimong ibutang sa `` standard '' nga mga dapit (pananglitan, panahon sa pagsulay). Nagbalik kini sa direktoryo diin ang dominyo mao ang `` gigapos. ''

Ang default domain mao ang bili sa TEXTDOMAIN . Kung ang direktoryo mao ang null nga string ( "" ), nan ang bindtextdomain () magbalik sa kasamtangan nga binding alang sa gihatag nga domain .

dcgettext (lambing [ , domain [ , kategoriya ]] )

Gipabalik ang paghubad sa string sa domain domain domain alang sa category category sa kategorya . Ang default nga bili sa domain mao ang kasamtangan nga bili sa TEXTDOMAIN . Ang default nga bili alang sa kategoriya mao ang "LC_MESSAGES" .

Kon nagahatag ka og usa ka bili alang sa kategoriya , kini kinahanglan nga usa ka hilo nga sama sa usa sa mga nailhan nga mga kategoriya sa lokal nga gihulagway sa GAWK: Epektibong AWK Programming . Kinahanglan mo usab hatagan ang usa ka domain domain. Gamita ang TEXTDOMAIN kon gusto nimo gamiton ang kasamtangan nga domain.

dcngettext ( string1 , string2 , numero [ , domain [ , kategoriya ]] )

Gipabalik ang pormang plural nga gigamit alang sa gidaghanon sa paghubad sa string1 ug string2 sa domain domain sa domain alang sa category category category . Ang default nga bili sa domain mao ang kasamtangan nga bili sa TEXTDOMAIN . Ang default nga bili alang sa kategoriya mao ang "LC_MESSAGES" .

Kon nagahatag ka og usa ka bili alang sa kategoriya , kini kinahanglan nga usa ka hilo nga sama sa usa sa mga nailhan nga mga kategoriya sa lokal nga gihulagway sa GAWK: Epektibong AWK Programming . Kinahanglan mo usab hatagan ang usa ka domain domain. Gamita ang TEXTDOMAIN kon gusto nimo gamiton ang kasamtangan nga domain.

GITIN-AW NGA MGA KOMUNIDAD

Ang mga gimbuhaton sa AWK gihubit ingon sa mosunod:

function name ( lista sa parameter ) { pahayag }

Ang mga gimbuhaton gipatuman sa diha nga kini gitawag gikan sa sulod nga mga ekspresyon sa mga sumbanan o buhat. Ang aktwal nga mga parameter nga gihatag sa function call gigamit aron sa pag-instantiate sa pormal nga mga parameter nga gideklarar sa function. Ang mga agianan gipasa pinaagi sa pakisayran, ang ubang mga baryable gipasa sa bili.

Tungod kay ang mga gimbuhaton wala sa orihinal nga bahin sa AWK nga pinulongan, ang probisyon alang sa lokal nga mga kabag-ohan mao ang clumsy: Kini gideklara nga sobra nga mga parameter sa lista sa parameter. Ang kombensyon mao ang pagbahin sa lokal nga mga kabag-ohan gikan sa tinuod nga mga sumbanan pinaagi sa dugang mga luna sa lista sa parameter. Pananglitan:

function f (p, q, a, b) # a ug b mga lokal {...} / abc / {...; f (1, 2); ...}

Ang wala nga panapnig sa tawag sa usa ka function kinahanglan nga mosunod dayon sa pangalan sa paglihok, nga walay bisan unsang intervening nga puting luna. Kini aron malikayan ang usa ka sintaktik nga pagkadili tin-aw sa operator sa pag-concatenation. Kini nga pagdili dili magamit sa gitukod nga mga gimbuhaton nga gilista sa ibabaw.

Ang mga katungdanan mahimong magtawag sa usag usa ug mahimong recursive. Ang mga parametric function nga gigamit isip mga lokal nga mga kausaban ang gisugdan sa null string ug ang gidaghanon nga zero sa pag-invoke sa function.

Paggamit sa expr sa pagbalik aron ibalik ang usa ka bili gikan sa usa ka function. Ang bili sa pagbalik dili matino kung wala'y gihatag nga bili, o kung ang function mobalik sa "pagkahulog" sa katapusan.

Kon ang lint gihatag, ang gawk nagpasidaan mahitungod sa mga tawag ngadto sa wala'y tino nga mga gimbuhaton sa panahon sa paglihok, inay sa oras sa pagdagan. Ang pagtawag sa usa ka dili tino nga function sa run time usa ka makamatay nga sayup.

Ang pulong func mahimo gamiton puli sa function .

DAMNAMICALLY LOADING NEW FUNCTIONS

Pagsugod sa bersyon 3.1 sa gawk , mahimo ka nga madugangan nga makadugang sa bag-ong mga function sa gawk interpreter. Ang bug-os nga mga detalye dili lapad sa niining panid nga panid; tan-awa ang GAWK: Epektibo nga AWK Programming alang sa mga detalye.

extension ( butang , katuyoan )

Dinamikong i-link ang shared object file nga ginganlan sa object , ug idagan ang function sa maong butang, aron mahimo ang initialization. Kini kinahanglan nga itagana ingon nga mga hilo. Gipabalik ang bili nga nahibalik pinaagi sa pag-obra .

Kini nga gimbuhaton gihatag ug gi-dokumentado sa GAWK: Epektibo nga AWK Programming , apan ang tanan mahitungod niini nga bahin lagmit nga mausab sa sunod nga pagpagawas. GISUGYOT gayud kami nga dili nimo gamiton kini nga bahin alang sa bisan unsang butang nga dili nimo gusto magamit.

SIGNALS

Ang pgawk nagdawat duha ka signal. Ang SIGUSR1 naghimo niini nga dump usa ka profile ug function nagtawag sa stack sa profile file, nga awkprof.out , o bisan unsa nga file ang ginganlan sa --profile option. Kini nagpadayon sa pagdagan. Ang SIGHUP nagpahinabo sa paglabay sa profile ug pag-function sa pagtawag stack ug dayon paglabay.

MGA Ehemplo

I-print ug i-sort ang mga pangalan sa login sa tanang tiggamit: BEGIN {FS = ":"} {print $ 1 | Pag-ihap sa mga linya sa usa ka file: {nlines ++} END {print nlines} Pasidaan ang matag linya pinaagi sa numero sa file: {print FNR, $ 0} Concatenate and line number (usa ka variation sa usa ka tema): {print NR, $ 0

Internalisasyon

Ang consting nga mga hugpong mao ang mga pagkasunod-sunod sa mga karakter nga gilakip sa double quotes. Diha sa dili-Iningles nga mga sinultihan sa pagsulti, posible nga markahan ang mga hilo sa programa sa AWK nga nagkinahanglan sa paghubad sa lumad nga natural nga pinulongan. Ang maong mga linya gitiman-an sa AWK nga programa nga adunay usa ka nag-una nga underscore (`` _). Pananglitan,

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

kanunay mag-imprinta hello, kalibutan . Apan,

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

mahimo nga mag-print bonjour, monde sa France.

Adunay ubay-ubay nga mga lakang nga nalambigit sa paghimo ug pagpadagan sa usa ka programa sa lokal nga AWK.

1.

Pagdugang og usa ka aksyon nga BEGIN aron ibutang ang usa ka bili ngadto sa TEXTDOMAIN variable aron i-set ang domain domain sa usa ka ngalan nga may kalabutan sa imong programa.


BEGIN {TEXTDOMAIN = "myprog"}

Kini nagtugot sa gawk nga makit-an ang .mo file nga may kalabutan sa imong programa. Kung wala kini nga lakang, gigamit sa gawk ang mga mensahe nga domain domain, nga lagmit walay mga paghubad alang sa imong programa.

2.

Markahi ang tanang mga hugpong nga kinahanglan mahubad uban sa mga nag-unang mga underscore.

3.

Kon gikinahanglan, gamita ang dcgettext () ug / o bindtextdomain () mga gimbuhaton sa imong programa, kung angay.

4.

Gihimo ang gawk --gen-po -f myprog.awk> myprog.po aron makamugna og .po file alang sa imong programa.

5.

Paghatag og angay nga mga paghubad, ug pagtukod ug pag-instalar sa usa ka katugbang nga .mo nga file.

Ang internasyonal nga mga bahin gihulagway nga detalyado kaayo sa GAWK: Epektibo nga AWK Programming .

Posix nga Kaugalingon

Ang usa ka nag-una nga tumong alang sa gawk mao ang pagkasibo sa POSIX standard, maingon man sa pinakabag-o nga bersyon sa UNIX awk . Tungod niini, ang gawk naglakip sa mosunod nga mga makita nga bahin sa mga gumagamit nga wala gihulagway sa AWK nga libro, apan kabahin sa bersyon sa Bell Laboratories sa awk , ug anaa sa POSIX nga sumbanan.

Ang basahon nagpakita nga ang variable nga assignment sa linya sa linya mahitabo kung ang awk mag-abli sa argumento isip usa ka file, nga human sa BEGIN block ipatuman. Apan, sa sayo pa nga mga pagpatuman, kung ang maong asaynment moatubang sa bisan unsang mga ngalan sa file, ang buluhaton mahitabo sa dili pa modagan ang BEGIN block. Ang mga aplikasyon nag-agad sa kini nga `` nga bahin. '' Sa dihang ang awk giusab aron sa pagpares sa dokumentasyon niini, ang -v nga kapilian sa paghatag sa mga kapilian sa wala pa ang pagpatuman sa programa gidugang aron sa pagdawat sa mga aplikasyon nga nagdepende sa daan nga kinaiya. (Kini nga bahin giuyonan sa mga Bell Laboratories ug sa mga developers sa GNU.)

Ang -W nga kapilian alang sa pagpatuman sa piho nga mga bahin gikan sa POSIX standard.

Sa pagproseso sa mga argumento, gigamit sa gawk ang espesyal nga opsiyon nga `` - '' aron timaan ang katapusan sa mga argumento. Sa pagkompirma nga pamaagi, kini nagpasidaan apan apan wala magtagad sa wala'y tino nga mga kapilian. Sa normal nga operasyon, ang maong mga argumento ipasa ngadto sa programa sa AWK aron kini iproseso.

Ang AWK nga libro wala magpasabut sa pagbalik sa bili sa srand () . Ang POSIX nga pamantalaan nag-uli sa binhi nga gigamit niini, sa pagtugot sa pagsubay sa random nga mga han-ay sa numero. Busa ang srand () sa gawk usab nagapabalik sa iyang kasamtangang binhi.

Ang ubang mga bag-ong bahin mao ang: Ang paggamit sa daghang mga opsiyon (gikan sa MKS awk ); ang laray sa ENVIRON ; ang \ a , ug \ v makaluwas nga mga han-ay (gibuhat sa orihinal sa gawk ug gipakaon balik sa bersyon sa Bell Laboratories); ang tolower () ug toupper () nga gitukod nga mga function (gikan sa bersyon sa Bell Laboratories); ug ang ANSI C conversion specifications sa printf (gihimo una sa bersyon sa Bell Laboratories).

Makasaysayanon nga mga Kinaiyahan

Adunay duha ka bahin sa kasaysayan nga mga implementasyon sa AWK nga nagsuporta sa gawk . Una, posible nga tawagan ang gitas-on () nga kinatibuk-ang function nga dili lamang walay panaglalis, apan bisan pa wala'y parentheses! Busa,

a = length # Holy Algol 60, Batman!

mao ra ang sama

a = length ()
a = gitas-on ($ 0)

Ang kini nga bahin gimarkahan isip `` us aka '' sa POSIX standard, ug ang gawk nagpahibalo sa usa ka pasidaan mahitungod sa paggamit niini kon ang - lint gitino sa command line.

Ang lain nga bahin mao ang paggamit sa bisan unsa ang magpadayon o ang mga pahayag nga pahayag sa gawas sa lawas sa usa ka panahon , alang sa , o sa pagbuhat sa loop. Ang tradisyonal nga mga implementasyon sa AWK nagtratar sa maong paggamit isip katumbas sa sunod nga pahayag. Gawk misuporta niini nga paggamit kung ang --traditional nga gitino.

GNU Extensions

Ang Gawk dunay daghang mga extension sa POSIX awk . Gihulagway kini sa niini nga seksyon. Ang tanan nga mga ekstensiyon nga gihulagway dinhi mahimo nga dili gamiton pinaagi sa paggamit sa gawk sa -traditional nga kapilian.

Ang mosunod nga mga bahin sa gawk dili makita sa POSIX awk .

*

Walay pagpangita sa dalan nga gihimo alang sa mga file nga ginganlan pinaagi sa -f nga kapilian. Busa ang AWKPATH environment variable dili espesyal.

*

Ang \ x escape sequence. (Disabled with - postix .)

*

Ang fflush () function. (Disabled with - postix .)

*

Ang abilidad sa pagpadayon sa mga linya pagkahuman ? ug :. (Disabled with - postix .)

*

Octal ug hexadecimal constants sa mga programa sa AWK.

*

Ang mga ARGIND , BINMODE , ERRNO , LINT , RT ug TEXTDOMAIN nga mga kabahin dili espesyal.

*

Ang variable nga IGNORECASE ug ang epekto niini dili makuha.

*

Ang FIELDWIDTHS variable ug fixed-width nga field nga nabahin.

*

Ang laray sa PROCINFO dili mabatonan.

*

Ang paggamit sa RS isip usa ka regular nga ekspresyon.

*

Ang espesyal nga mga ngalan sa file nga anaa alang sa pag-redirect sa I / O wala maila.

*

Ang | & operator alang sa paghimo sa mga co-proseso.

*

Ang katakos sa pagbahin sa indibidwal nga mga karakter gamit ang null string ingon nga bili sa FS , ug isip ikatulong argumento nga mag- split () .

*

Ang opsyonal nga ikaduha nga argumento sa kataposan () nga lihok.

*

Ang opsyonal nga ikatulo nga argumento sa dula () nga lihok.

*

Ang abilidad sa paggamit sa positional specifiers sa printf ug sprintf () .

*

Ang paggamit sa delete array aron makuha ang kinatibuk-ang sulod sa usa ka panagsama.

*

Ang paggamit sa nextfile aron pagbiya sa pagproseso sa kasamtangan nga input file.

*

Ang mga ug () , asort () , bindtextdomain () , compl () , dcgettext () , gensub () , lshift () , mktime () , () , rshift () , strftime () , strtonum () , systime () ug xor () mga gimbuhaton.

*

Mga lokal nga linya.

*

Dugang nga bag-ong gitukod nga mga gimbuhaton dinamikong gamit ang extension () function.

Ang AWK nga libro wala magpasabut sa pagbalik sa bili sa close () function. Ang suod nga Gawk () nagbalik sa bili gikan sa fclose (3), o pclose (3), sa pagtapos sa usa ka output file o pipe, matag usa. Gipabalik ang status sa exit sa proseso sa pagtapos sa input pipe. Ang bili sa pagbalik mao ang -1 kon ang ginganlan nga file, pipe o co-process wala giablihan sa usa ka redirection.

Kon ang gawk gigamit sa -traditional option, kung ang fs nga argumento sa -F mao ang `` t '', unya ang FS gitakda sa tab character. Hinumdumi nga ang pag-type sa gawk -F \ t ... mao lamang ang hinungdan sa kabhang sa pag-quote sa `` t, '', ug dili moagi `` \ t '' sa -F nga opsyon. Tungod kay kini usa ka hugaw kaayo nga espesyal nga kaso, kini dili ang batasan nga kinaiya. Kini nga kinaiya dili usab mahitabo kung ang - posix nga gitino. Aron makabaton og tab character sama sa field separator, labing maayo nga gamiton ang single quotes: gawk -F '\ t' ....

Tan-awa ang ubang mga sugo : paghulat , lp , kumpleto , execv , getfacl , ioctl , uniq , rmmod , pvcreate , rsh , unix2dos , cal , fs , cd , iwpriv , swapon , autofs , talk , motd , free , lpr , execl , fdisk , sa , kinsa , iwconfig , ifconfig , vgdisplay , bukas , lsmod , ntohs , mailq , pagpatay , wtmp