Fantaro ny baiko Linux - gawk

Anarana

gawk - lamina fampiroboroboana sy fanodinana ny fiteny

Synopsis

gawk [POSIX na GNU style options] -f programfile [ - ] rakitra ...
gawk [POSIX na GNU style options] [ - ] rakitra fandaharam-pandefasana lahatsoratra ...

pgawk [POSIX na GNU style options] -f programfile [ - ] rakitra ...
pgawk [POSIX na GNU safidy style] [ - ] rakitra fikitan'ny rakitra ...

Description

Gawk no tetikasa GNU amin'ny fametrahana ny programan'ny programa AWK. Mifanaraka amin'ny famaritana ny fiteny ao amin'ny POSIX 1003.2 Command Language And Utilities Standard. Ity famaha ity dia mifototra amin'ny famaritana ao amin'ny The AWK Programming Language , avy Aho, Kernighan, ary Weinberger, miaraka amin'ireo endritsoratra fanampiny hita ao amin'ny version V System 4 release of UNIX awk . Gawk ihany koa dia manome teti-bola vao haingana ny Bell Laboratories, ary maromaro amin'ny fampitomboana ny GNU.

Pgawk no famoahana version gawk . Izy io dia mitovy amin'ny fomba rehetra amin'ny gawk , afa-tsy ny fandaharam-potoana mihazakazaka kokoa, ary mamokatra automatique famonoana azy ao amin'ny file awkprof.out rehefa vita izany. Jereo ny safidy - profil , etsy ambany.

Ny andalana baiko dia misy safidy hapetrakao , ny lahatsoratra programa AWK (raha tsy ampidirina amin'ny alalan'ny -f na --file safidy), ary ny sanda azo omena amin'ny alàlan'ny ARGC sy ARGV efa voafaritra.

Format Format

Ireo safidy Gawk dia mety ho POSIX tradisiona iray safidy an-taratasy, na safidy lava be an'ny GNU. Ny safidy POSIX dia manomboka amin'ny "1" - '', raha toa ka misy safidy lava manomboka amin'ny `` - ''. Ireo safidy lava dia omena amin'ny endriny GNU-manokana ary ho an'ny POSIX-endri-javatra.

Aorian'ny fanandramana POSIX, ny safidy gawk -specific dia omena amin'ny adihevitra amin'ny safidy -W . Maro ny safidy -W azo ampiasaina Ny safidy -I dia manana safidy lava mifanaraka amin'izany, araka ny voalaza etsy ambany. Ny adihevitra amin'ny safidy lava dia tafiditra amin'ny safidy amin'ny = = famantarana, tsy misy toerana malalaka, na azo omena azy ireo amin'ny laharana manaraka. Mety ho fohy ny safidy lava, raha toa ka mitoetra ho tsy manam-paharoa ilay fivoahana.

Options

Gawk dia manaiky ireto safidy manaraka ireto, ka soritana amin'ny abidy.

-F fs

--field-separator fs Ampiasao fs ny sasantsasany (sanda miovaova FS ).

-v var = val

--assign var = val Omeo ny sanda valo amin'ny vary varahina , alohan'ny hanombohan'ny fanombohana ny programa. Ny soatoavin'ny fari-pahaizana dia azo alaina ao amin'ny baikon'ny BEGIN amin'ny programa AWK.

-f programa-fichier

--filefilefilefilefilefilefilefilefilefilefilefilefilefilefilefilefilefilefilefilefilefilefilefilefilefilefilefilefilefilefilefilefilefilefilefilefilefilefilefilefilefilefileaccessfile=filefilefilefilefile/filefile/filefile/filefile/filefile/filefile/filefile Azo ampiasaina ny safidy maro -f (na --file ).

-mf NNN

-mr NNN Mametraha fetran'ny fahatsiarovan-tena ho an'ny sanda NNN . Ny saina flag dia mametraka faran'izay betsaka, ary ny flag flag no mamaritra ny haben'ny rakitra. Ireo saina roa sy ny safidy -m dia avy amin'ny fikarohana momba ny fikarohana momba ny Laboratoara Bell ao amin'ny UNIX awk . Tsy noraharahian'ny gawk izy ireo , satria tsy manana fetra voafaritra voafaritra mazava ny gawk.

-W mifanaraka

-W tradisionaly

--compat

--traditional Mandeha amin'ny môtera fifanarahana . Amin'ny habetsaky ny kompatibilite, ny gawk dia mitovitovy mitovy amin'ny UNIX awk ; Tsy misy amin'ireo fikambanana GNU manokana no ekena. Ny fampiasana ny - tradisionera dia aleony amin'ny endrika hafa amin'ity safidy ity. Jereo ny GNU EXTENSIONS , etsy ambany, raha mila fanazavana fanampiny.

-W copyleft

- Ny zon'ny mpamorona

--copyleft

--copyright Manaova printy ny votoatiny fohy momba ny fampahalalana momba ny zon'ny mpamorona momba ny zon'ny mpamorona momba ny serasera sy ny fivoahana amin'ny fivoahana.

-W dump-variables [ = fichier ]

--dump-variables [ = laha-tahiry ] Manonta lisitra voatahiry amin'ny fari-pehezan'izao tontolo izao, ny karazany sy ny soatoavina farany natsofoka . Raha tsy misy ny rakitra dia ampiasa ny gawk ampiasaina ny file ahafantarana awkvars.out ao amin'ny lahatahiry misy ankehitriny.

Ny lisitry ny fari-piaviana maneran-tany dia fomba tsara hitadiavana ny fahadisoana diso ao amin'ny programanao. Azonao atao koa ny mampiasa an'io safidy io raha manana programa lehibe miaraka amin'ny asa be dia be ianao, ary te hahafantatra ianao fa ny asanao dia tsy mampiasa tsy am-pihambahambana maneran-tany izay heverinao ho toerana. (Izany dia fahadisoana tena mora atao amin'ny anarana tsotra tsotra toy ny i , j , sy ny sisa.)

-W fanampiana

-W fampiasa

--Vonjeo

--usage Manonta famintinana fohy momba ireo safidy azo isafidianana ao amin'ny output standard. (Araka ny fitsipika Coding GNU , ireo safidy ireo dia mahatonga ny fifindrana avy hatrany.)

-W lint [ = fatal ]

--lint [ = fatal ] Manome fampitandremana momba ny fanorenana izay mampiahiahy na tsy azo itokisana amin'ny fanatanterahana ny AWK hafa. Miaraka amin'ny fanaporofoan-kevitra azo antoka momba ny fahafatesana , ny fampitandremana ny lint dia lasa fahadisoana mahafaty. Mety henjana izany, saingy ny fampiasana azy dia azo antoka fa handrisika ny fampivoarana ny programa AWK madio kokoa.

-W lint-old

--lint-old Omeo fampitandremana momba ny fananganana izay tsy azo tanterahana amin'ny dikan-tsoratry ny Unix awk .

-Zava-po

--e-po- Scan ary manaparitaka ny programa AWK, ary mamorona tahiry format GNU .po amin'ny alim-pandaharana miaraka amin'ny fidirana ho an'ny sehatr'asa rehetra ao amin'ny programa. Tsy atao ny programa. Jereo ny fizarana finday GNU raha mila fanazavana fanampiny momba ny .po files.

-W tsy-decimal-data

--non-decimal-data Recognize ny soatoavina octal sy hexadecimal ao amin'ny data data. Ampiasao amim-pitandremana tsara io safidy io!

-W posix

--posix Ity dia mitodika amin'ny fomban'ny kompatibilite , miaraka amin'ireto fepetra fanampiny ireto:

*

Tsy misy dikany ny fandefasana ny escape x .

*

Ny sehatra sy tabo-tsehatra ihany no miasa toy ny sasan-tsiram-bidy rehefa napetraka amin'ny toerana iray ny FS , tsy misy vaovao.

*

Tsy afaka manohy ny andalana manaraka ianao? ary :.

*

Ny fehin- teny mitovitovy amin'ny fonosana dia tsy ekena.

*

Ny mpandraharaha ** sy ** = dia tsy azo ampiasaina ho solon'ny ^ sy ^ = .

*

Tsy misy ny fflush () .

-W profile [ = prof_file ]

- profile [ = prof_file ] mandefa profiling data amin'ny prof_file . Ny default dia awkprof.out . Rehefa mihazakazaka miaraka amin'ny gawk , ny profil dia sombin-tsarin'ny 'programa tsara tarehy' ihany. Raha toa ka mihazakazaka miaraka amin'ny pgawk , ny profilana dia mirakitra ny fampiasana ny fanambarana tsirairay ao amin'ny programa amin'ny sisin'ny sisiny havia ary ny lahasa fiantsoana antso ho an'ny tsirairay izay voafaritra.

-W re-interval

--re-interval Ampiasao ny fampiasana fanehoan- tsokosoko amin'ny fomba fiteny mifanandrify (jereo ny Regular Expressions , ambany). Fanehoana anelanelan'ny teny AWK dia tsy hita amin'ny fomba mahazatra. Ny standard POSIX dia nanampy azy ireo, mba hampifanaraka sy hifanaraka. Na izany aza, ny fampiasana azy ireo dia mety handany ny programa AWK taloha, ka ny gawk dia manome azy ireo raha toa ka angatahana amin'io safidy io, na rehefa voatondro --position .

-W source program-text

- programa-programa- mampiasa Text- programa amin'ny loharanom-baovaon'ny AWK. Io safidy io dia ahafahana mampifanaraka ny fikarakarana ny tranomboky (ampiasaina amin'ny safidy -f sy --file ) miaraka amin'ny fango loharano mivoaka ao amin'ny baikon'ny baiko. Natokana ho an'ny fampahalalam-baovao ho an'ny programa AWK lehibe ampiasaina amin'ny rakitra shell izany.

-W version

- version Fanontana fanontana printy ho an'ity dika manokana ity amin'ny gawk amin'ny vokatra serfa. Ilaina indrindra ny hahafantarana raha ny famandrihan'ny gawk amin'izao fotoana izao dia mifandraika amin'ny rafitra maimaimpoana izay zaraina ny Free Software Foundation. Tena ilaina koa izany rehefa mitatitra bug. (Araka ny fitsipika Coding GNU , ireo safidy ireo dia mahatonga ny fifindrana avy hatrany.)

- Ampianaro ny faran'ny safidy. Ilaina ny mamela hevitra hafa amin'ny programa AWK hanombohana amin'ny '`-' '. Izany indrindra no mahatonga ny fivoaran'ny fivoaran'ny fivoriambe ampiasain'ny ankamaroan'ny programa POSIX.

Amin'ny fomba fanao mahazatra, ny safidy hafa rehetra dia aseho ho tsy manan-kery, fa kosa dia misy tsy miraharaha izany. Amin'ny fikarakarana ara-dalàna, raha toa ka omena ny lahatsoratra amin'ny programa, ny safidy tsy fantatra dia alefa amin'ny programa AWK ao amin'ny ARGV array ho an'ny fanodinana. Ity dia tena ilaina tokoa amin'ny famoahana programa AWK amin'ny alalan'ny 'interpreter' mpandika teny amin'ny teny '! #!'.

FAMPANDROSOANA AWK

Ny programa AWK dia mifototra amin'ny fehezan-teny momba ny môtera sy ny famaritana fiteniny.

lamina { action statement }

anarana anarana ( lisitry ny parameter ) { fanambarana }

Gawk dia mamaky voalohany ny loharanom-pandaharana avy amin'ny tahiry fandaharana (s) raha voalaza, avy amin'ny argument to --source , na avy amin'ny laharana tsy misy safidy voalohany amin'ny baiko baiko. Ny safidy -f sy -source dia mety ampiasaina imbetsaka ao amin'ny baiko baiko. Gawk dia mamaky ny lahatsoratra fandaharana toy ny hoe ny ampaham -peo rehetra sy ny baikon'ny loharanom-baiko dia nirakitra miaraka. Izany dia ilaina amin'ny fananganana tranomboky ny asa AWK, tsy mila mampiditra azy ireo ao amin'ny programa vaovao AWK izay mampiasa azy ireo. Izy io koa dia manome ny fahafahana mandrindra ny asa aman-draharahan'ny programa miaraka amin'ny programa baiko baiko.

Ny fari- dova miafin'ny tontolo AWKPATH dia mamaritra ny làlana fitadiavam- bolo raha jerena ny rakitra avy amin'ny lohan- drakitra antsoina amin'ny safidy -f . Raha tsy misy io fari-drakitra io, dia ny ".: / Usr / local / share / awk" dia ny " . (Ny tolotra misy dia mety tsy mitovy, arakaraka ny fomba nanamboarana sy nametrahana ny gawk.) Raha misy ny anaran-drakitra nomena ny -f dia misy karazana `/ '', tsy misy fikarohana.

Gawk dia manatanteraka ny programa AWK amin'ny baiko manaraka. Voalohany, ny andraikitra rehetra mifandraika amin'ny alalan'ny -v dia atao. Avy eo, gawk dia nanambatra ny programa ho endrika anaty. Avy eo, gawk dia manatanteraka ny baiko ao amin'ny BLOG BEGIN (s) (raha misy), ary avy eo dia mamaky ny rakitra rehetra voalaza ao amin'ny ARGV array. Raha tsy misy rakitra voalaza ao amin'ny baiko baiko, gawk dia mamaky ny fidirana serial.

Raha toa ka misy ny anaran-drakitra ao amin'ny baikon'ny baiko dia ny var = val dia heverina ho andraikitra miovaova. Ny vary varahina dia omena ny vala val . (Mitranga izany rehefa vita ny blôgin'ny BEGIN .) Ny fametrahana ny fari-dalan'ny baikon'ny baiko dia tena ilaina indrindra amin'ny fametrahana ny soatoavina amin'ny alàlan'ny AWK ampiasaina mba hifehezana ny fampidiran-tsoratra amin'ny saha sy ny rakitra. Ilaina ihany koa ny fanaraha-maso ny fanjakana raha ilaina maromaro ny tahirin-drakitra.

Raha tsy misy ny singa misy singa iray amin'ny ARGV ( "" ), dia manipika azy io ny gawk .

Ho an'ny rakitsoratra tsirairay ao amin'ny fampidirana, tests gawk raha te hifanaraka amin'ny programa ao amin'ny AWK. Ho an'ny lamina tsirairay izay mifanandrify ny rakitsoratra, dia atao ny hetsika atao. Ny lamina dia notsapaina tamin'ny baiko notanterahiny tamin'ny fandaharana.

Farany, rehefa reraka ny fampidiran-dresaka rehetra, gawk dia manatanteraka ny code ao amin'ny blocs END (raha misy).

Variables, rakitsoratra ary sehatra

A variable ny AWK; Tonga izy ireo rehefa ampiasaina aloha. Ny soatoavin'izy ireo dia na tarehimarika na tadim-pahaizana, na samy hafa, miankina amin'ny fomba ampiasain'izy ireo. Ny AWK koa dia manana milina dimampolo; Azo atao ny simba ny andian-tsoratra maro samihafa. Variable maromaro voafaritra efa voafaritra ho fandaharana; Ireo no holazaina rehefa ilaina izany ary mamintina etsy ambany.

Records

Amin'ny ankapobeny, ny firaketana dia misaraka amin'ny tarehintsoratra vaovao. Azonao atao ny mifehy ny fisoratana amin'ny firaketana ny firaiketam-peo amin'ny RS . Raha RS dia singa tokana, io toetra io dia manasaraka ny rakitsoratra. Raha tsy izany, RS dia fanehoana tsy tapaka. Ny lahatsoratra eo amin'ny fidirana mifanaraka amin'izany fomba fiteny izany dia manasaraka ilay rakitsoratra. Na izany aza, amin'ny fomba fanehoana fifanarahana, ny endri-tsoratra voalohany amin'ny sariohatra dia ampiasaina amin'ny fisoratana rakitra. Raha mametraka ny tsipika tsipika RS ny RS dia tsy misaraka ireo rakitra. Rehefa napetraka amin'ny laharana tsy voafehy ny RS , ny endritsoratra vaovao dia miseho foana ho toy ny sasantsasany amin'ny saha, ankoatra izay mety ho an'ny FS .

Fields

Rehefa voavaky ny rakitsoratra rehetra dia manasaraka ny rakitsoratra amin'ny sehatra ny gawk , mampiasa ny sandan'ny fari- dranon'ny FS ho toy ny sasantsasany amin'ny saha. Raha FS dia toetra tokana, ny saha dia misaraka amin'io toetra io. Raha ny FS no endritsoratra tsy mitongilana, dia lasa sehatra manokana ny toetra tsirairay. Raha tsy izany, ny FS dia andrasana ho fanehoan-kevitra feno. Ao amin'ny tranga manokana izay FS dia sehatra tokana, ny saha dia misaraka amin'ny hazakazaka sy / na tabilao ary / na vaovao. (Jereo ihany koa ny adihevitra momba ny --posix , ambany). FANAMARIHANA: Ny lanjan'ny IGNORECASE (jereo eto ambany) koa dia misy fiantraikany amin'ny fomba fizarana sasantsasany amin'ny fisehoana matetika ny FS , ary ny fisorohana ny firaketana rehefa manomboka amin'ny teny fohy ny RS .

Raha toa ny fari- piadin'ny FIELDWIDTHS napetraka amin'ny lisitry ny isa voatokana, ny sehatra tsirairay dia andrasana hanana habe miovaova, ary ny gawk dia manasaraka ny rakitra amin'ny fampiasana ny refy voalaza. Ny sandan'ny FS dia tsy raharahaina. Ny fametrahana sanda vaovao ho an'ny FS dia manakana ny fampiasana ny FIELDWIDTHS , ary mamerina ny fitondran-tena tsy mety.

Ny saha isaky ny rakitsoratra voarakitra dia mety hiantsoana ny toerana misy azy, $ 1 , $ 2 , sy ny sisa. $ 0 ny rakitsoratra manontolo. Ny sehatra dia tsy tokony hiantehan'ny fitakiana:

n = 5
print $ n

dia mametraka ny saha fahadimy ao amin'ny rakitsoratra fanindroany.

Ny farafahakeliny NF dia mametraka ny isa feno ao anatin'ny rakitsoratra fanoratana.

Ny famaritana ny saha tsy misy (toy ny saha taorian'ny $ NF ) dia mamokatra ny kofehy tsy mety. Na izany aza, ny fametrahana sehatra tsy misy eo an-toerana (ohatra, $ (NF + 2) = 5 ) dia mampitombo ny sandan'ny NF , manamboatra sehatra anelanelam-pandaminana miaraka amin'ny lahatahiry tsy manan-tsahala ho sarobidy, ary mahatonga ny sandan'ny $ 0 ho averina averina Ireo saha dia misaraka amin'ny vidin'ny OFS . Ny fanondroana ny saha misy ny laharana negatif dia mahatonga ny fahadisoana maty. Ny fametahana ny NF dia miteraka ny soatoavin'ny sehatra handalovana ny vidiny vaovao, ary ny sandan'ny $ 0 tokony averina averina, miaraka amin'ireo saha voafantina amin'ny vidin'ny OFS .

Ny fametrahana lanja amin'ny sehatra efa misy dia miteraka indray ny rakitra rehetra rehefa voatondro ny $ 0 . Tahaka izany, ny fametrahana lanjany ho $ 0 dia mampiato ny rakitsoratra, mamorona sanda vaovao ho an'ireo saha.

Vokatra natsangana

Ny votoatin'ny tranokala Gawk dia:

ARGC

Ny isa marin'ny baikon'ny baiko (tsy misy safidy ho an'ny gawk , na ny loharanom-baiko).

ARGIND

Ny endriky ny ARGV amin'ny rakitra amin'izao fotoana izao dia atao.

ARGV

Array amina baikon'ny baiko. Ny array dia indexed from 0 to ARGC - 1. Ny fanovana ny votoatin'ny ARGV dia afaka mifehy ny rakitra ampiasaina amin'ny angona.

BINMODE

Amin'ny rafitra tsy-POSIX, dia mamaritra ny fampiasana ny 'binary' 'mode ho an'ny rakitra rehetra I / O. Ny sanda misy ny 1, 2, na 3, dia manondro fa ny rakitra fidirana, ny rakitra output, na ny rakitra rehetra, dia tokony hampiasa binary I / O. Ny soatoavina string "r" , na "w" dia manondro fa tokony hampiasa binary I / O ny rakitra fampidirana, na ny rakitra output. Ny soatoavina "rw" na "wr" dia mamaritra fa ny rakitra rehetra dia tokony hampiasa binary I / O. Ny lanjan'ny string hafa rehetra dia raisina ho "rw" , saingy mamoaka hafatra fampitandremana.

CONVFMT

Ny format fiovam-po ho an'ny isa, "% .6g" , raha alahatra .

ENVIRON

Array iray ahitana ny soatoavin'ny tontolo ankehitriny. Ny endriky ny endriky ny endriky ny tontolo iainana, ny singa tsirairay dia ny lanjan'io fari-dalany io (ohatra: ENVIRON ["HOME"] dia mety / home / arnold ). Ny fiovana an'io array io dia tsy misy fiantraikany amin'ny tontolo hita amin'ny programa izay gawk dia mitroka amin'ny alàlan'ny fanavaozana na ny rafitra () .

ERRNO

Raha toa ka misy fahadisoana eo amin'ny rafitra iray na manao ny fanodinana fikidinana , mandritra ny famakiana ho amin'ny famerenana , na mandritra ny fotoana fohy () , dia ny ERRNO dia ahitana sombin-tsoratra mamaritra ny hadisoana. Ny sandany dia mety amin'ny fandikana amin'ny teny tsy amin'ny teny Anglisy.

FIELDWIDTHS

Lisitry ny sehatra ahafantarana ny fotsy. Rehefa napetraka, dia manaparitaka ny soso-kevitra amin'ny sehatra misy ny hateviny ny gawk, fa tsy mampiasa ny soatoavin'ny FS raha toa ka ny sasantsasany amin'ny saha.

ANARAN'NY FISIE

Ny anaran'ny dossier ankehitriny. Raha tsy voalaza ao amin'ny baiko baiko ny rakitra, ny sanda FILENAME dia `` - ''. Na izany aza, ny FILENAME dia tsy voafaritra ao anatin'ny sakana BEGIN (raha tsy aseho amin'ny torolalana ).

FNR

Ny laharan-drakitra ao amin'ny dossier ankehitriny.

FS

Ny sasantsasany amin'ny sehatra fanangonana, sehatra iray tsy mitovy. Jereo ny Saha , etsy ambony.

IGNORECASE

Mifehy ny tranga mety ho an'ny fanehoan-kevitra sy fehezan-tsoratra tsy tapaka. Raha ny IGNORECASE dia manana sanda tsy misy dikany, dia ny fampitahana sy ny lamina mifandraika amin'ny fitsipika mifehy ny fs , mamaritra ny fisarahana amin'ny RS , ny fitenim-paritra mifandraika amin'ny ~ and ! ~ , Ary ny gensub () , gsub () , index () , ny teboka () , ny split () , ary ny sub () dia tsy miraharaha ny raharaha rehefa manao fepetra tsy tapaka. FANAMARIHANA: Tsy misy fiantraikany ny fametahana array , na ny asort () .

Noho izany, raha tsy mitovy ny zero ny IGNORECASE , / aB / dia mifanandrify ny " string " rehetra , "aB" , "Ab" , ary "AB" . Tahaka ny fiovan'ny AWK rehetra, ny lanjany voalohany amin'ny IGNORECASE dia zero, noho izany, ny fehezan-teny matetika sy ny fehezan-teny matetika dia miteraka adihevitra. Amin'ny UNIX, ny laharana karazana ISO 8859-1 amin'ny latin-1 dia ampiasaina rehefa tsy raharahaina.

LINT

Manome fifehezana am- pahamalinana ny safidy --lint ao anatin'ny programa AWK. Rehefa marina, dia mampitandrina ny gawk. Raha diso izany dia tsy izany. Rehefa nomena ny sandan'ny kofehy " fatim-bolana " , dia lasa diso ny fampitandremana, toy ny --lint = fatal . Ny lanjany iray hafa dia mampiseho fampitandremana fotsiny.

NF

Ny isan'ny saha ao amin'ny rakitsoratra ankehitriny.

Nr

Ny totalin'ny rakitra fidirana hita hatramin'izao.

OFMT

Ny format output ho an'ny tarehimarika, "% .6g" , raha alahatra .

OFS

Ny sasan-tsinjara ivelany, sehatra iray tsy mitovy.

ORS

Ny sara-drakitra misokatra, ny alimanakan'ny dikan-teny.

PROCINFO

Ny singa amin'ity karazana ity dia manome fahafahana miditra amin'ny fampahalalana momba ny programa AWK. Amin'ny rafitra sasany dia mety misy singa ao amin'ny array, "group1" amin'ny alalan'ny "vondrona n " ho an'ny sanda sasany, izay isa ny vondrona fanampiny izay misy izany. Ampiasao ny mpandraharaha mba hitsapana ireo singa ireo. Ireto fitaovana manaraka ireto dia azo antoka fa misy:

PROCINFO [ "egid"]

ny lanjan'ilay antsoina hoe system getegid (2).

PROCINFO [ "euid"]

ny sandan'ny antso an- tariby geteuid (2).

PROCINFO [ "FS"]

"FS" raha toa ka misy fiasa mitovitovy amin'ny FS , na "FIELDWIDTHS" raha toa ka misy fiasa miavaka amin'ny FIELDWIDTHS .

PROCINFO [ "i Gida"]

ny lanjan'ilay antsoina hoe rafitra (2).

PROCINFO [ "pgrpid"]

Ny vondrona ID momba ny dingana arahina amin'izao fotoana izao.

PROCINFO [ "pid"]

ny ID ny fizotry ny dingana ankehitriny.

PROCINFO [ "ppid"]

ny ID momba ny fizotry ny dingana ankehitriny.

PROCINFO [ "uid"]

ny lanjan'ny antso an- tariby (2).

RS

Ny sara-peon'ny firaketana an-tsoratra, amin'ny alàlan'ny fanavaozana iray vaovao.

RT

The terminator record. Gawk dia mametraka RT ho amin'ny teny nampidirina amin'ny tarehimarika na ny fitenim-paritra notendren'ny RS .

RSTART

Ny endriky ny toetra voalohany mifanaraka amin'ny lalao () ; 0 raha tsy misy fifaninanana. (Midika izany fa manomboka amin'ny endriky ny endriky ny toetra.)

RLENGTH

Ny halavan'ny andalana mifandraika amin'ny lalao () ; -1 raha tsy mifaninana.

SUBSEP

Ny endri-tsoratra ampiasaina hanasarahana maromaro maromaro ao amin'ny singa array, amin'ny "\ 034" .

TEXTDOMAIN

Ny sehatry ny programa AWK; dia nahita ny fandikan-teny avy any an-toerana ho an'ny tady fandaharana.

Arrays

Ny array dia ampifandraisina amin'ny fanehoan-teny eo anelanelan'ny efamira ( [ ary ] ). Raha toa ka lisitry ny fanontana ( expr , expr ...) ny endri-tsoratra dia andian-tsoratra izay mampifandray ny sanda (string) isaky ny expression, misaraka amin'ny sandan'ny SUBSEP . Io toerana io dia ampiasaina hanamboarana array maro samihafa. Ohatra:

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

dia manendry ilay karazan-tsarimihetsika "hello, world \ n" ho an'ny singa x izay asehon'ny andalana "A \ 034B \ 034C" . Ny endri-pananganana rehetra ao amin'ny AWK dia asociative, izany hoe asehon'ny sanda filamatra.

Ny mpandraharaha manokana dia azo ampiasaina raha toa ka misy fanambarana iray na tsia mba hahitana raha misy singa iray misy singa iray misy lanjany manokana.

raha (val in array) print array [val]

Raha misy sora-baventy maromaro dia ampiasao (i, j) amin'ny array .

Ny fanamboarana dia azo ampiasaina amin'ny fehezanteny iray mba hibaiko ny singa rehetra amin'ny array iray.

Ny singa iray dia mety ho voafafa amin'ny array iray amin'ny fampiasana ilay teny fanesorana . Ny fanambarana fanesorana dia mety ampiasaina ihany koa mba hanafoanana ny ao anatin'ny rakitra rehetra, amin'ny alàlan'ny filazàna ny anaran-tsampy tsy misy famandrihana.

Fomba fanoratra sy fanovana

Ny varimbazaha sy ny saha dia mety (teboka), na ny tsipika, na ny roa. Ny lanjan'ny fari-piadidiana dia adika noho ny teny manodidina azy. Raha ampiasaina amin'ny fiteny nomerika dia ho raisina ho toy ny isa izany, raha ampiasaina ho toy ny tsipika dia ho raisina ho toy ny tady.

Mba hanerena ny fari-piainana tokony ho raisina ho isa, ampio 0 izany; Mba hanerena azy ho toy ny tady, manafosafo azy amin'ny kofehy tsy ampy.

Raha tsy maintsy miova amin'ny laharana iray ny kofehy iray dia tanterahina amin'ny fampiasana strtod (3) ny fiovam-po. Ny isa dia niova fo tamin'ny fampiasana ny lanjan'ny CONVFMT ho endri-tsipika ho an'ny sprintf (3), miaraka amin'ny lanjan'ny tarehimarika ny fari-piadidiana ho toy ny adihevitra. Na izany aza, na dia maromaro aza ny isa rehetra ao amin'ny AWK, ny soatoavina mifototra dia miova fo foana . Noho izany, nomena

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

Ny variable b dia manana sanda "12" fa tsy "12.00" .

Gawk dia manao fampitahana toy izao manaraka izao: Raha roa ny isa dia misy tarehimarika, dia ampitahaina amin'ny isa. Raha misy lanjany dia ny tarehimarika ary ny iray hafa dia manana lamosina marika izay misy 'string numérique,' 'avy eo dia ampitahaina ihany koa ny fampitahana. Raha tsy izany, ny sanda nomerika dia niova ho karazan'olona iray ary ny fampitahana string dia vita. Ny tsipika roa dia ampitahaina, mazava ho azy, ho toy ny tady. Mariho fa ny fitsipiky ny POSIX dia mampihatra ny foto-kevitry ny 'string numérique' na aiza na aiza, ary na dia eo aza ny fehezan-kase. Na izany aza, tsy misy diso izany, ary gawk tsy manao izany. (Soa ihany fa voafetra io amin'ny dikan-teny manaraka.)

Mariho fa tsy mifandramatra ny fehezan-kase, toy ny "57" , izy ireo dia fehezan-koditra. Ny hevitra hoe 'string numerique ' dia ampiharina amin'ny sehatra, fampidiran-drakitra, sary FILENAME , ARGV, singa ENVIRON ary ny singa array iray noforonina (split () izay tarehintsim-poitra. Ny hevitra fototra dia ny fampidirana mpampiasa , ary ny solonanaran'ny mpampiasa, izay mijery tarehimarika, tokony ho raisina toy izany.

Ny fari-pitsipika tsy misy alalana dia manana ny laharan-tarehimarika 0 sy ny "string" string "" (ny zero, na ny baoritra).

Hevi-bahoaka sy hexadecimal

Manomboka amin'ny version 3.1 amin'ny gawk, azonao atao ny mampiasa constants C-style octal sy hexadecimal ao amin'ny code source code an'ny AWK. Ohatra, ny sanda octal 011 dia mitovy amin'ny 9 , ary ny hexadecimal 0x11 dia mitovy amin'ny 17.

Fitondrana tady

Ny konstante string ao amin'ny AWK dia endritsoratra misy eo anelanelan'ny dingana roa ( " ). Misy rindran-tsavona sasantsasany azo ekena, toy ny ao amin'ny C. Ity ireto:

\\

Literatiora ara-bakiteny.

\ ny

Ny toetra 'alert' '; matetika ny toetra ASCII BEL.

\ 'ny

kitendry miverina.

\ F

teny-omeo hanina.

\ n

newline.

\ R

fiverenana fiara.

\ T

horonan-tsihy.

\ V

latina vertical.

\ x hex digits

Ny tarehimarika asehon'ilay andalana hexadecimal manaraka ny \ x . Tahaka ny ao amin'ny ANSIC, dia heverina ho ampahany amin'ilay fandosirana ny safidy rehetra manaraka isaky ny hexadecimal. (Ity asa ity dia tokony hilaza zavatra momba ny famolavolana ny teny amin'ny komity.) Ohatra, "\ x1B" dia ny ASCIIESC (escape).

\ ddd

Ny tarehimarika aseho amin'ny laharana 1-, 2-, na 3-stiffer dika octal. Ohatra, "\ 033" dia ASCII ESC (escape).

\ c

Ny toetra ara-bakiteny c .

Ny fizotry ny safidy dia azo ampiasaina ao anatin'ny fanamarihana tsy tapaka (ohatra: / [\ t \ f \ n \ r \ v] / mifanandrify karazana whitespace).

Ao amin'ny fomba fanamafisana, ireo tarehimarika izay aseho amin'ny andalana sy ny hexadecimal escape dia ampiharina ara-bakiteny raha ampiasaina amin'ny fifandanjana tsy tapaka. Noho izany, / a \ 52b / dia mitovy amin'ny / a \ * b / .

Modely sy Akany

Ny AWK dia fiteny mitongilana mifehy. Ny lamina dia tonga aloha, ary avy eo ny asa. Ny fanambarana hetsika dia voahidy ao amin'ny { and } . Na ny lamina dia mety ho tsy hita, na ny zavatra mety tsy ho hita, fa, mazava ho azy, tsy roa. Raha tsy hita ilay lamina, dia aseho amin'ny lahatahiry ny rakitra rehetra. Ny fihetsika tsy hita dia mifanohitra amin'ny

{print}

izay maneho ny rakitsoratra manontolo.

Ny fanombohana dia manomboka amin'ny tarehin'ny `` # ', ary tohizo hatramin'ny faran'ny tsipika. Ny tsipika matevina dia azo ampiasaina hanavahana fanambarana. Amin'ny ankapobeny, ny fanambarana dia mifarana amin'ny rindran-damina, na izany aza, tsy izany no mitranga amin'ny andalana mifarana amin'ny '`,' ', { , ? , : , && , or || . Ny famaranana na ny fehezan-teny an-tsoratra ihany koa dia nanohy nanohy ny teniny nanohy ny laharana manaraka. Amin'ny toe-javatra hafa dia azo atao ny manohy ny tsipika rehefa mamarana azy amin'ny ', raha ny marina dia tsy hiraharaha ilay lahatahiry.

Misy fanambarana maromaro azo apetraka amin'ny tsipika iray amin'ny fisarahana azy ireo amin'ny '`;' '. Izany dia azo ampiharina amin'ny fanambarana roa ao amin'ny ampahan'ny hetsika misy paikady (ny tranga efa mahazatra), ary ireo fanambarana mikasika ny mombamomba azy.

lamina

Ny modelin'ny AWK dia mety ho iray amin'ireto manaraka ireto:

FAMPANDROSOANA / famelabelaran -kevitra matetika / fanehoana relational sy & pattern | | modely modely ? Muster : modèle ( modèle ) ! ny endrika pattern1 , pattern2

BEGIN sy END dia karazam-pitaovana roa manokana izay tsy voavaha amin'ny fanondroana. Ny ampahany vokatry ny BEGIN rehetra dia tafangona tahaka ny hoe nosoratana tamin'ny singa BEGIN tokana ny fanambarana rehetra. Voavono izy ireo alohan'ny famakiana azy. Tahaka izany koa, ny vondrona END rehetra dia tafangona ary novonoina rehefa reraka ny sombin-tsoratra rehetra (na rehefa misy ny fanambarana mivoaka ). Ny endriky ny endriky ny endriny sy ny endriny dia tsy azo ampifandraisina amin'ny endrika hafa amin'ny endriny. FAMPIANARANA SY END dia tsy afaka manana ampahany zavatra mihetsika.

Ny / fanehoan-kevitra matetika / atao , ny fanambarana mifandraika dia atao ho an'ny rakitsoratra rehetra izay mifanaraka amin'ny fitenenana matetika. Ny teny manara-pitsipika dia mitovy amin'ny an'ny exrep (1), ary voafintina etsy ambany.

Ny fanehoana fifandraisana dia mety mampiasa ny iray amin'ireo mpandraharaha voafaritra etsy ambany ao amin'ny fizarana amin'ny hetsika. Ireo matetika dia maka fanahy raha toa ka misy sombin-tsoratra sasany mifanaraka amin'ny fehezanteny sasany.

Ny && , || , ary ! Ny mpandraharaha dia lojika AND, logical OR, ary logic NOT, ny azy, toy ny ao C. Manao fanadihadiana fohy izy ireo, ary toy ny ao amin'ny C, ary ampiasaina amin'ny fampifangaroana ny fomba amam-panazavana. Tahaka ny amin'ny ankamaroan'ny fiteny, ny loham-pianakaviana dia mety ampiasaina hanovana ny baikon'ny fanombanana.

Ny ?: Ny mpandraharaha dia mitovy amin'ny mpandraharaha ao amin'ny C. Raha marina ny lamina voalohany dia ny lamina faharoa ampiasaina amin'ny fisedrana dia ny lamina faharoa, raha tsy izany dia ny fahatelo. Ny iray amin'ireo lamina faharoa sy fahatelo ihany no voavaly.

Ny model1 , ny endrika2 endri-pitenenana dia antsoina hoe laminasa isan - karazany . Izy io dia mifanandrify amin'ny rakitsoratra fanoratana rehetra manomboka amin'ny rakitsoratra izay mifanandrify pattern1 , ary mitohy mandra- panafatra rakitsary izay mifanandrify pattern2 , inclusive. Tsy mifangaro amin'ny karazana endrika hafa izy io.

Regular Expressions

Ny teny maneho matetika dia ny karazana lava hita ao egrep . Izy ireo dia misy endritsoratra toy izao:

C

dia mifanandrify amin'ny tsy metacharacter c .

\ C

mifanandrify amin'ny litera c .

.

dia mifanandrify amin'ny endrika rehetra misy ny newline.

^

dia mifanandrify amin'ny fiantombohan'ny andalana iray.

$

mifanandrify amin'ny faran'ny kofehy.

[ abc ... ]

lisitry ny karazan'olona, ​​mifanandrify amin'ireo iray amin'ireo karazana abc ....

[^ abc ... ]

lisitry ny toetra tsy dia fantatra, mifanandrify karazana hafa afa-tsy abc ....

r1 | r2

fanovana: mifanandrify r1 na r2 .

r1r2

fifanarahana: mifanandrify r1 , ary avy eo r2 .

r +

mifanandrify iray na mihoatra.

r *

mifanandrify zero na mihoatra.

r ?

mifanandrify zero na r iray.

( r )

fikambanana: mifanandrify r .

r { n }

r { n ,}

r { n , m } Ny isa iray na roa ao anatin'ny fiatraikany dia manondro fisehoan -tsoratra . Raha misy isa iray ao anatin'io fantsom-panafody io, dia averimberina imbetsaka ny fanehoan-kevitra efa taloha. Raha misy isa roa misaraka amin'ny takelaka iray, dia averimberina in-fotoana ny r . Raha misy isa iray arahin'ny comma iray, dia averimberina im- n im- n im- pi izy.

Fanehoan-kevitra anelanelam-potoana azo atao raha toa ka misy ny --position na --re-interval voafaritra amin'ny baiko baiko.

\ Y

dia mifanitsy amin'ny kofehy foana na amin'ny fiandohana na amin'ny faran'ny teny iray.

\ B

Mifanitsy amin'ny kofehy foana amin'ny teny iray.

\ <

dia mifanandrify amin'ilay tadidy foana eo am-piandohan'ny teny iray.

\>

Mifanitsy amin'ny kofehy foana eo amin'ny faran'ny teny.

\ W

mifanaraka amin'ny tarehimarika misy endri-tsoratra (taratasy, tarehintsoratra, na fanamarihana).

\ W

mifanaraka amin'ny toetra rehetra izay tsy misy dikany.

\ `

dia mifanandrify amin'ilay tadidy foana eo am-piandohan'ny buffer (string).

\ '

dia mifanandrify amin'ilay tadidy foana eo amin'ny faran'ny buffer.

Ny fialana sasantsasany izay manan-kery amin'ny fehezan-teny (jereo eto ambany) dia manan-danja ihany koa amin'ny fanehoan-kevitra tsy tapaka.

Ny kilasin'ny karazana dia singa vaovao nampidirina ao amin'ny POSIX standard. Ny kilasy karazana dia singa manokana manoritsoritra ny lisitry ny tarehimarika izay manana toetra manokana, fa ny toerana misy ny tena endrik'izy ireo dia mety miovaova avy amin'ny firenena mankany amin'ny firenena sy / na avy amin'ny tarehimarika napetraka amin'ny tarehimarika. Ohatra, ny fiheverana ny atao hoe alfabeta dia tsy mitovy amin'ny Etazonia sy Frantsa.

Ny kilasim-pahamarinana dia manan-kery amin'ny fanehoan-kevitra tsy tapaka ao anaty fononteny misy lisitra. Ny kilasin'ny karazan'olona dia avy amin'ny [: , tenim-pitenenana iray mamaritra ny kilasy, ary :] . Ny kilasy karazana voafaritry ny standard POSIX dia:

[: alnum:]

Litera manokana amin'ny alfanumerika.

[: Alpha:]

Anarana iombonana amin'ny teny albaney

[: banga:]

Toerana na takelaka tabilao.

[: cntrl:]

Fitaovana fanaraha-maso.

[: tarehimarika:]

Karazana tarehimarika.

[: Tabilao:]

Ireo karazan-tarehy izay sady azo anoratana no hita. (Toerana iray dia azo atao printy nefa tsy hita, fa iray ny iray .)

[: ambany:]

Literatiora ambany ambany.

[: printy:]

Karazana printy (karazana tsy manara-maso).

[: punct:]

Karazan-tsoratra karazana (tarehin-tsoratra tsy misy taratasy, tarehimarika, tarehin-tsoratra, na tarehintsoratra).

[: toerana:]

Karazan-tsarimihetsika (toy ny toerana, tabilao, ary formfeed, hanonona anaran'olona vitsivitsy).

[: ambony:]

Ireo tarehin-tsoratra alphabetika ambony indrindra.

[: xdigit:]

Karazana tarehy hexadecimal.

Ohatra, alohan'ilay fitsipiky ny POSIX, mifanandrify amin'ireo tarehintsoratra alphanumerika, dia tokony voatery nanoratra ianao / [A-Za-z0-9] / . Raha manana tarehin-tsoratra hafa amin'ny abidy ny tarehinao, dia tsy mifanandrify amin'izy ireo izany, ary raha tsy mitovy amin'ny ASCII ny tarehimarika nasehoo dia mety tsy mifanandrify amin'ny tarehintsoratra ALC ASCII. Miaraka amin'ny kilasy POSIX, dia azonao atao ny manoratra / [[: alnum:]] / , ary mifanaraka amin'ny tarehintsoratra sy ny tarehintsoratra ny tarehintsoratra.

Fanampim-panaovana manokana fanampiny dia afaka miseho amin'ny lisitry ny toetra. Ireo dia mihatra amin'ny lahatahiry tsy misy ASCII, izay afaka manana marika tokana (antsoina hoe singa mifangaro ) izay misy endritsoratra mihoatra ny iray, ary misy tarehintsoratra maromaro mitovy amin'ny fitambaran-tsoratra, na tanjona. (Ohatra, mitovy amin'ny teny frantsay ny teny hoe e 'e' ary e)

Hamarino ny Symbols

Ny mari-pamantarana iray mifamahofaho dia singa mifangaro maromaro voatahiry ao amin'ny [. ary .] . Ohatra, raha singa mifamatotra ny ch , ny [[.ch.]] Dia fitenenana tsy tapaka izay mifanandrify amin'io singa io, fa ny [ch] dia fitenenana matetika izay mifanandrify amin'ny c na h .

Classes equivalence

Ny kilasin'ny equivalence dia anaran-toerana manokana ho an'ny lisitry ny tarehin-tsoratra mitovy. Ao amin'ny [= and =] ny anarana . Ohatra, ny anarana e dia mety ampiasaina hanehoana ny 'e', ​​'' e ',' ', ary `` e'. '' Amin'io tranga io, [[= = =]] dia fitenenana matetika Mitovy amin'ny e , e ' , na e ` .

Ireo endri-javatra ireo dia tena sarobidy amin'ny fiteny tsy miteny Anglisy. Ny tranomboky dia miasa izay ampiasain'ny gawk ho amin'ny fanehoan-kevitra tsy tapaka mifanandrify amin'izao fotoana izao ny kilasy POSIX; Tsy fantany ny mari-pamantarana sy ny fifangaroana.

Ny \ y , \ B , \ < , \> , \ w , \ W , \ ` , ary \ ' mpandraharaha dia voatokana ho an'ny gawk ; Izy ireo dia fanitarana mifototra amin'ny tranokala ao amin'ny tranokala GNU.

Ny safidy andalana isan-karazany dia mifehy ny fomba entin'ny gawk maneho ireo tarehimarika amin'ny fiteny tsy tapaka.

Tsy misy safidy

Amin'io tranga io, ny gawk dia manome ny fanalahidin'ny regular expression POSIX sy ny mpiasan'ny governemanta GNU milaza ny voalaza etsy ambony. Na izany aza, tsy misy ny fanehoan-kevitra eo amin'ny fanelanelanana.

--posix

Ireo solontenam-pandaharana POSIX ihany no manohana, ny mpiasan'ny GNU dia tsy manokana. (Ohatra: \ w mifanaraka amin'ny litera w ). Azo atao ny mamoaka ny fanelanelanana.

--traditional

Fomba fanao mahazatra tokana nentim-paharazana no mifanentana. Ny mpiasan'ny GNU dia tsy manokana, tsy misy ny fanehoan-tsokosoko, ary tsy ny kilasy POSIX ( [[: alnum:]] sy ny sisa). Ny karazam-pitaovana nofaritan'ny octal sy hexadecimal escape sequences dia nomena ara-bakiteny, na dia maneho ny metacaracters matetika aza izy ireo.

--re-elanelam-potoana io

Omeo ny fanehoan- tsipiriany amin'ny fanehoan-kevitra tsy tapaka, na dia nomena -radisy ihany.

Actions

Ny fanambarana momba ny hetsi-panoherana dia tafiditra ao amin'ny fiantohana, { ary } . Ny fanambarana avy amin'ny fihetsiketsehana dia avy amin'ny fanambarana mahazatra, fanamboaran-dàlana ary fehezanteny hita amin'ny ankamaroan'ny fiteny. Ny mpandraharaha, ny fanambarana fanaraha-maso, ary ny fanambarana / fampitaovana azo alaina dia natsangana manaraka ireo ao amin'ny C.

mpandraharaha

Ny mpandraharaha ao amin'ny AWK, mba hampihenana ny loha laharana, dia

( ... )

Grouping

$

Fijerena saha.

++ -

Fanamafisana sy fihenam-bidy, prefix roa sy postfix.

^

Azo jerena ihany koa ny fampisehoana ( ** azo ampiasaina, ary ** = ho an'ny mpandraharaha).

+ -!

Unary plus, minus unary, ary fandikana lojika.

* /%

Fanabeazana, fizaràna ary modulus.

+ -

Fanampiana sy fanintelony.

toerana

Firaketana an-tsokosoko.

<>

<=> =

! = == Ireo mpandraharaha mifandray amin'ny fifandraisana.

~! ~

Fitsipika tsy tapaka, tsy mifanaraka amin'ny lalao. FANAMARIHANA: Aza mampiasa fomba fiteny tsy tapaka ( / foo / ) eo ankavia amin'ny ~ ~ ! Ampiasao fotsiny ny iray eo ankavananao. Ny teny / foo / ~ exp dia manana dikany mitovy amin'ny ($ 0 ~ / foo /) ~ exp ) . Tsy mahazatra izany .

in

Mpikambana mpikambana.

&&

Logical AND.

||

Logical OR.

?:

Ny teny fehezanteny C. Ity ny form expr1 ? expr2 : expr3 . Raha marina ny expr1 , ny value of expression dia expr2 , raha tsy izany dia expr3 . Ny iray amin'ireo expr2 sy expr3 dia novaina.

= + = - =

* = / =% = ^ = Fanendrena. Ny andraikitra tsy miankina ( var = vala ) sy ny andraikitry ny mpandraharaha (ireo endrika hafa) dia tohana.

Control Statements

Toy izao manaraka izao ireo fanambarana momba ny fanaraha-maso:

Raha toa ny ( condition ) fanambarana dia manazava ny fanambarana ( fanambarana ) ho an'ny ( expr1 ; expr2 ; expr3 ) fanambarana ho an'ny ( var in array ) fanambarana break continues armed array [ index ] delete array exit [ expression ] fanambarana }

I / O fanambarana

Ny fanambarana endriky / fampitaovana dia toy izao manaraka izao:

Open book 01.svg Anarana iombonana

Kitiho ny rakitra, ny fantsona na ny dingan'ny fiara Ny fakan-kevitra izay tokony ampiasaina rehefa tapaka ny faran'ny dingana roa amin'ny fomba fiaraha-miasa. Tokony ho sarobidy izy io, na "hatramin'ny" na "avy" .

getline

Asio $ 0 avy amin'ny rakitsoratra manaraka; NF , NR , FNR .

teboka < file

Mametraka $ 0 avy amin'ny rakitsoratra manaraka; set NF .

getline var

Manaova var from record records; NR , FNR .

< div class = getline

Asio varaka avy amin'ny rakitsoratra manaraka.

command | Getline [ var ]

Atsaharo ny baikon'ny baiko mandidy ny vokatra na $ 0 na var , toy ny etsy ambony.

command | & getline [ var ]

Manaova baiko ho toy ny orinasam-pifandraisana miaraka amin'ny vokatra na $ 0 na var , toy ny etsy ambony. Ny fiaraha-miasa dia fanitarana gawk .

Manaraka

Atsaharo ny fanitsiana ny rakitsoratra misy ankehitriny. Ny rakitsoratra manaraka dia vakina ary manomboka ny dingana voalohany amin'ny lamina voalohany ao amin'ny programa AWK. Raha toa ka tapitra ny faran'ny angon-drakitra, ny sakana END , raha misy, dia novonoina.

nextfile

Atsaharo ny fanitsiana ny rakitra fidirana ankehitriny. Ny vakiteny manaraka dia avy amin'ny rakitra fidirana manaraka. Nohavaozina ny FILENAME sy ny ARGIND , naverina tamin'ny 1 ny FNR , ary ny fanodinana dia manomboka amin'ny lamina voalohany ao amin'ny programa AWK. Raha toa ka tapitra ny faran'ny angon-drakitra, ny sakana END , raha misy, dia novonoina.

printy

Manonta ny rakitsoratra ankehitriny. Ny rakitra output dia tapaka amin'ny sandan'ny ORS .

print expr-lis

Expressions expressées. Ny fiteny tsirairay dia misaraka amin'ny sandan'ny OFS . Ny rakitra output dia tapaka amin'ny sandan'ny ORS .

print expr-list > rakitra

Famoahana ny rakitra amin'ny rakitra . Ny fiteny tsirairay dia misaraka amin'ny sandan'ny OFS . Ny rakitra output dia tapaka amin'ny sandan'ny ORS .

printf fmt, expr-lis

Fandefasana sy fanontana.

printf fmt, expr-list > rakitra

Famoronana ary manonta amin'ny rakitra .

system ( cmd-line )

Manaova ny baiko cmd- ny baiko, ary avereno ny mari-toerana. (Tsy mety amin'ny system-POSIX izany.)

Open book 01.svg Anarana iombonana

Asio baoritra mifandraika amin'ny rakitra misokatra na rakitra fanokafana. Raha tsy misy ny rakitra dia alefa ny output standard. Raha rakitra ny lahatahiry dia tsy misy diso ny rakitra misokatra sy ny fantsona rehetra.

Ny famoahana fanampiny hafa dia ahazoana printy sy printf .

print >> >>

dia manainga ny famoahana ny rakitra .

print ... | didy

manoratra eo amin'ny sodina.

print ... | & command

dia mandefa angon-drakitra ho amin'ny dingam-pandrosoana.

Ny baiko mitongilana dia miverina 0 amin'ny faran'ny rakitra ary -1 amin'ny hadisoana iray. Amin'ny fahadisoana, ERRNO dia misy tsipika mamaritra ny olana.

FANAMARIHANA: Raha mampiasa pipes na co-process to getline , na avy amin'ny printy na printf ao anaty loop, tsy maintsy mampiasa faralahy () mba hamorona vaovaon'ity baiko ity. Ny AWK dia tsy manakaiky ny fantsom-pokontany na fiaraha-miasa rehefa mamerina ny EOF.

Ny fanambarana printa

Ny endri-tsoratra AWK amin'ny fanambarana printf sy ny sprintf () (manazava etsy ambany) dia manaiky ireto endrika format famaritana manaraka ireto:

% d

Karazana ASCII. Raha toa ilay lahateny ampiasaina ho % c dia isa marika, dia raisina ho toetra sy printy izy io. Raha tsy izany dia heverina ho andian-tsoratra ny andalana, ary ny endrika tokana voalohany amin'io endri-tsoratra io dia vita printy.

% d , % i

A nomerao laharana (ny ampahany manontolo).

% e,% E

Ny isa maromaro amin'ny endrika [-] d.dddddde [+ -] dd . Ny format % E dia mampiasa E fa tsy e .

% f

Fomban-databatra mirindra amin'ny endrika [-] ddd.dddddd .

% g,% G

Ampiasao ny % e na % f fiovam-po, na inona na inona latsa-paka, tsy misy dikany ny tsy fandeferana. Ny format % G dia mampiasa % E fa tsy % e .

% O

Ozinina octal tsy fantatra (na iray manontolo ihany).

% u Ny isa nomero tsy nomena (indray, marika iray manontolo).

% s

Karazan-tsoratra iray.

% x,% X

Hexadecimal laharana tsy nomena (anarana iray). Ny format % X dia mampiasa ABCDEF fa tsy abcdef .

%%

Olona iray tokana % ; Tsy misy adihevitra miova.

Ireto ny sanda fanampiny mety hampiavaka ny % sy ny taratasy fanaraha-maso:

manisa $

Ampiasao ny fehezan-teny hoe 'th argument at this point in the formatting. Ity dia antsoina hoe voatendry manokana ary natao voalohany indrindra amin'ny fampiasana amin'ny dikan-teny fandikana voadika amin'ny endritsoratra, fa tsy amin'ny soratra tany am-piandohan'ny programa AWK. Izany dia fanitarana gawk .

-

Tokony havaozina ilay fanehoan-kevitra - voamarina ao anatin'ny saha.

toerana

Ho an'ny fifanakalozan-tarehimarika dia alaivo tsara ny soatoavina tsara amin'ny toerana iray, ary ny soatoavina ratsy amin'ny marika kely.

+

Ny marika plus, ampiasaina alohan'ny fanovana (jereo eto ambany), dia milaza fa manome mari-pamantarana ho an'ny fifanakalozan-telefaona foana, na dia tsara aza ny angona azo ampiasaina. Ny + manosika ny modifier.

#

Ampiasao ny 'endrika hafa' ho an'ny taratasy fanaraha-maso sasany. Ho an'ny % o , manome ny laharana laharana. Ho an'ny % x , ary % X , dia manome 0x na 0X mitondra ho an'ny vokatra tsy mitera-bolana. Ho an'ny % e , % E , ary % f , ny valiny dia misy foana ny sombin-tsarimihetsika. Ho an'ny % g , ary % G , ny siramamy lavitr'ezaka dia tsy nesorina tamin'ny valiny.

0

Ny mpitarika 0 (zero) dia mihetsika toy ny sainam-pirenena, izay midika fa ny vokatra dia tokony hofehezina miaraka amin'ny solosaina fa tsy toerana. Izany dia mihatra na dia amin'ny endrika tsy misy tarehimarika aza. Ny sainam-pirinty dia misy vokany raha betsaka lavitra noho ny sandan'ny sora-baventy ny saha.

sakany

Ny saha dia tokony hofidina amin'io sakany io. Ny tanimboly dia marefo amin'ny toerana. Raha ampiasaina ny sainam-pirenena 0 , dia voafefy amin'ny lahasa izy ireo.

. Préc

Ny isa izay mamaritra ny mari-pahaizana ampiasaina rehefa manonta printy. Ho an'ny % e , % E , ary % f formats, ity dia mamaritra ny isan'ny tarehimarika tadiavinao eo ankavanana amin'ny teboka desimal. Ho an'ny % g , ary ny format % G , dia mamaritra ny isa marika faran'izay betsaka. Ho an'ny % d , % o , % i , % u , % x , ary % X format, dia mamaritra ny isa marika fara-fahakeliny izy io. Ho an'ny % s , dia mamaritra ny tarehimarika marobe indrindra amin'ny sora-baventy izay tokony atao pirinty.

Ny laharana dynamique sy ny fepetran'ny rafitra ANSI C printf () dia tohanana. A * amin'ny toeran'ny habaka na ny tarehimarika voatondro dia mahatonga ny soatoavina hoesorina amin'ny lisitry ny argument amin'ny printf na sprintf () . Raha hampiasa milina miavaka na marimaritra iraisana ianao, dia omeo $ a $ a * ao amin'ny format string. Ohatra, "% 3 $ * 2 $ * * 1 $ s" .

Anarana fandefasana manokana

Rehefa manao fanovàna / fanavaozana avy amin'ny printy na printf ao anaty rakitra, na amin'ny finday avy amin'ny rakitra, gawk dia mamantatra anaran-drakitra manokana manokana anatiny. Ireo fametavetana ireo dia mamela ny fahafahana misafidy ny safidin- drakitra misafidy avy amin'ny dingan'ny gawk (matetika ny shell). Ireo anaran-drakitra ireo koa dia azo ampiasaina ao amin'ny laharam-pizarana mba hanondroana rakitra tahiry. Ny anaran-drakitra dia:

/ dev / stdin

Ny fidirana amin'ny standard.

/ dev / stdout

Ny output standard.

/ dev / stderr

Ny vokatra diso momba ny diso.

/ dev / fd / n

Ny rakitra mifandraika amin'ny solon'anarana open open n .

Ireo dia tena ilaina tokoa amin'ny hafatra diso. Ohatra:

pirinty "Notsofinao!" > "/ dev / stderr"

raha tsy izany dia tsy maintsy ampiasaina

pirinty "Notsofinao!" | "cat 1> & 2"

Ireo anaran-drakitra manokana ireo dia azo ampiasaina amin'ny mpampiasa | & co-processor ho an'ny famoronana ny fifandraisana TCP / IP.

/ inet / tcp / lport / rhost / rport

Fichier ho an'ny fifandraisana TCP / IP eo amin'ny seranana eo an-toerana ho an'ny rhost host'ny remote amin'ny seranana lavitra boribory . Ampiasao ny seranan-tsambo 0 mba ahafahan'ny rafitra mifidy port.

/ inet / udp / lport / rhost / rport

Tahaka izany, fa ampiasao UDP / IP fa tsy TCP / IP.

/ inet / raw / lport / rhost / rport

Voafandrika ho an'ny fampiasana ho avy.

Ny filaharam-potoana manokana hafa dia manome fahafahana miditra amin'ny fampahalalana momba ny fizotran'ny gawk . Ireo anaram-pejy ireo dia efa lany andro. Ampiasao ny fitaovana PROCINFO mba hahazoana ny fampahalalana omen'izy ireo. Ny anaran-drakitra dia:

/ dev / pid

Ny famakiana ity rakitra ity dia mamerina ny ID ny fizotry ny dingana misy ankehitriny, amin'ny endrikendrika, voafafa amin'ny lahatahiry.

/ dev / ppid

Ny famakiana ity rakitra ity dia mamerina ny ID ny fizotry ny fizotry ny dingana misy ankehitriny, amin'ny endrikendrika, voafafa amin'ny lahatahiry vaovao.

/ dev / pgrpid

Ny famakiana ity rakitra ity dia mamerina ny ID ny vondrona misy ny dingana misy amin'izao fotoana izao, amin'ny endri-tsoratra, voafafa amin'ny lahatahiry.

/ dev / mpampiasa

Ny famakiana ity rakitra ity dia mamerina raki-peo tokana voafafa amin'ny lahatahiry iray. Ny saha dia misaraka amin'ny toerana. Ny $ 1 dia ny sandan'ny antso an- tariby (2), ny $ 2 dia ny sandan'ny antso an- tariby geteuid (2), ny $ 3 dia ny lanjan'ny antsoina hoe getgid (2), ary ny $ 4 dia ny vidin'ny getegid (2) call system. Raha misy saha fanampiny, izy ireo dia ID ny vondrona naverina tamin'ny gropy (2). Maro ireo vondrona mety tsy azo atonina amin'ny rafitra rehetra.

Numeric Functions

Ny AWK dia manana ireo rafitra aritmetika manaraka:

atan2 ( y , x )

Mamerina ny arctangent amin'ny y / x amin'ny radians.

cos ( expr )

Mamerina ny cosine amin'ny expr , izay any amin'ny radians.

exp ( expr )

Ny asa fanitarana.

int ( expr )

Kotroka ho an'ny integer.

log ( expr )

Ny rafitra logarithm voajanahary.

Rand ()

Mametraka tarehimarika maromaro eo anelanelan'ny 0 sy 1.

sin ( expr )

Mamerina ny feon'ny expr , izay ao anaty radians.

sqrt ( expr )

Ny fotony fototra.

srand ( [ expr ] )

Ny fampiasana dia toy ny voa vaovao ho an'ny mpamorona ny random number. Raha tsy misy express , dia ampiasaina ny ora ampiasaina. Ny vidin'ny miverina dia ny voa teo aloha ho an'ny mpamorona nomerao.

String Functions

Gawk dia manana teti-panoratana manaraka:

asort ( s [ d ]]

Mamerina ny isan'ny singa ao amin'ny karazan-tsoriaka s . Ny votoatin'ny s dia voatokana araka ny fitsipika ara-dalàna gawk amin'ny fampitahana ny soatoavina, ary ny endriky ny soatoavina voatokana amin'ny s dia nosoloina miaraka amin'ny laharan-tariby manomboka amin'ny 1. Raha toa ka voalaza ny ars angady d dia atao duplicated d , ary avy eo ny d dia ny karazana, tsy mamela ny endriky ny loharanom-baomiera.

gensub ( r , s , h [ t ]]

Karohy ny tady lasibatra t ho an'ny fifanintsanana amin'ny teny manara-pitsarana r . Raha h begins to be string with g or G , then replace the matches of r with s . Raha tsy izany, h dia marika mampiseho hoe iza no mifanaraka amin'ny r . Raha tsy ampiasaina dia $ 0 no ampiasaina. Ao anatin'ny lahatsoratra fanoloana s dia ny endri-tsoratra \ n , izay ahitan'ny n isa 1 ka hatramin'ny 9, dia azo ampiasaina mba hanondroana fotsiny ilay lahatsoratra izay mifanandrify amin'ny fanehoan-kevitra mampihetsi-po. Ny endri-tsoratra \ 0 dia mampiseho ny lahatsoratra mifandraika manontolo, toy ny toetra & . Tsy toy ny sub () sy gsub () , dia averina ny endriky ny kofehy vokatry ny asany, ary tsy miova ny endriky ny kinendry voalohany.

gsub ( r , s [ t ]]

Ho an'ny isam-bolana tsirairay mifanandrify amin'ny fitenenana matetika ao amin'ny string t , dia apetaho ny sora-baventy, ary avereno ny isan'ny fisoloana. Raha tsy ampiasaina dia ampiasao $ 0 . Ny solonanarana & amin'ny lahatsoratra fanolo dia nosoloina amin'ny lahatsoratra izay mifanandrify indrindra. Ampiasao \ & mba hahazoana litera & . (Io dia tokony aseho amin'ny hoe "\\ &" ; jereo GAWK: Programming AWK Effective for a more discussion of the rules for '& backslashes in the text substitute of sub () , gsub () , and gensub () .)

indeks ( s , t )

Mamerina ny endriky ny string t ao amin'ny string s , na ny 0 raha tsy tsy misy izany. (Midika izany fa manomboka amin'ny endriky ny endriky ny toetra.)

Dikanteny tokony homarinana avy amin'ny teny anglisy

Mamerina ny lavan'ilay sora-baventy , na ny halavan'ny $ 0 raha tsy nividy s .

mifanitsy ( s , r [ , a ] )

Mamerina ny toerana ao amin'ny toerana misy ny fitenenana tsy tapaka, na ny 0 raha tsy tsy misy, ary mametraka ny soatoavin'ny RSTART sy ny RLENGTH . Mariho fa ny baikon'ny argument dia mitovy amin'ny an'ny mpandraharaha: str . Raha misy array dia omena iray ary avy eo ny singa 1 ka hatramin'ny n dia feno ny ampahany amin'io izay mifanandrify amin'ny fanehoan- kevitra mampihetsi-po mifandraika amin'ny r . Ny singa faha-0 ao amin'ny a dia ahitana ny ampahany amin'ny mifanaraka amin'ny fiteny iray manontolo.

split ( s , a [ , r ] )

Ampidino ny filaharana eo amin'ny array iray amin'ny fanehoan-kevitra mahazatra, ary avereno ny isan'ny saha. Raha tsy omena r , dia ampiasaina ny FS . Ny kitapo a dia alaina aloha. Ny famafazana dia mitovitovy mitovy amin'ny fizarana saha, voalaza etsy ambony.

sprintf ( fmt , expr -lis )

Ny dika printy dia manondro araka ny fmt , ary mamerina ilay tadidy.

strtonum ( str )

Diniho ny str , ary avereno ny lanjany. Raha manomboka amin'ny 0 ny str dia, strtonum () dia mihevitra fa str dia isa oktal. Raha manomboka amin'ny 0x na 0X ny str dia, strtonum () dia mihevitra fa str dia hexadecimal ny isa.

sub ( r , s [ t ]]

Tahaka ny gsub () , fa ny solonanarana voalohany mifanandrify ihany no nosoloina.

substr ( s , i [ , n ] )

Mamerina ny ankabeazan'ny n -character ny s voalohany manomboka amin'ny i . Raha tsy omena ny n , ny sisa dia ampiasaina.

tolower ( str )

Mameraka dika mitovy amin'ny string str , miaraka amin'ireo endritsoratra ambony rehetra ao amin'ny str izay nadika tamin'ny soso-kevitra mifanaraka aminy. Ireo litera tsy manana alfabetika dia tsy miova.

toupper ( str )

Mameraka dika mitovy amin'ny string str , miaraka amin'ireo tarehimarika ambany kokoa amin'ny teny gr dia adika amin'ny pejy mifanaraka aminy. Ireo litera tsy manana alfabetika dia tsy miova.

Functions Time

Satria iray amin'ny fampiasana voalohany amin'ny programa AWK dia ny famoaham-pejam-panatonana rakitra izay misy ny fampahalalana momba ny famandrihana fotoana, ny gawk dia manome ireto tolotra manaraka ireto mba hahazoana mari-potoana sy famoronana azy ireo.

mktime ( datypec )

Rurns datespec ho an'ny fotoana iray mitovy endrika amin'ny an'ny systime () . Ny daty dia endriky ny endrika YYYY MM DD HH MM SS [DST] . Ny votoatin'ilay tady dia tarehimarika enina na fito izay miseho ny taon-dasa manontolo, anisan'izany ny taonjato, ny volana 1 hatramin'ny 12, ny andron'ny volana 1 hatramin'ny 31, ny ora amin'ny andro 0 hatramin'ny 23, ny minitra 0 hatramin'ny 59, ary ny faharoa 0 hatramin'ny 60, ary ny sainam-panafahana tsy misy fakam-panahy. Ny soatoavin'ireo tarehimarika ireo dia tsy tokony ho ao anatin'ny faritra voatondro; Ohatra, ora iray amin'ny -1 midika 1 ora alohan'ny mamatonalina. Ny kalandrie gregoriana no niandoha, tamin'ny taona 0 tamin'ny taona 1 sy taona -1 talohan'ny taona. Ny fotoana dia heverina fa ao amin'ny faritry ny tanan-toerana. Raha tsara ny sainam-pamonjena mandritra ny andro, dia ny fotoana noheverina fa fotoana fialan-tsasatra; Raha zero, ny fotoana dia heverina ho fotoana faneva; ary raha miala (default), ny mktime () dia manandrana mamaritra raha toa ny fotoana voafaritra ny famantaranandro ny fotoana voafaritra. Raha toa ka tsy ahitana singa ampy ny datapec na raha tsy voafaritra ny fotoana voafaritra dia miverina -1 ny mktime () .

strftime ( [ format [ , timestamp ]] )

Ny format timames dia mifanaraka amin'ny fehezanteny amin'ny format. Ny fe-potoana dia tokony ho endrika mitovy amin'ny an'ny systime () . Raha tsy misy ny fanamarihana , dia ampiasaina ny fotoana misy ny andro. Raha toa ka tsy misy ny format, dia ampiasaina ny endri-tsoratra iray mitovy amin'ny output date (1). Jereo ny filazalaza ny strftime () ao amin'ny ANSI C noho ny format mivadika izay azo antoka fa misy. Ny dikan-tenin'ny strftime (3) ho an'ny daholobe ho an'ny daholobe ary misy pejy maneho izany amin'ny gawk ; Raha ampiasaina hanamboarana gawk io dikan-teny io, dia azo jerena ao daholo ny fiovana rehetra voalaza ao amin'io pejy io .

systime ()

Mamerina ny vanim-potoana amin'izao fotoana izao ny isan'ny segondra hatramin'ny Epoch (1970-01-01 00:00:00 UTC amin'ny rafitra POSIX).

Bit Manipulations Functions

Manomboka amin'ny version 3.1 amin'ny gawk , dia misy ny asa fanodinkodinana bitika manaraka. Miasa izy ireo amin'ny alàlan'ny famerenana ny soatoavina teboka avo roa heny amin'ny sokajy lava tsy fantatra anarana , manao ny fandidiana, ary avy eo dia mamadika ny valiny miverina mankany amin'ny teboka. Ireo asa ireo dia:

ary ( v1 , v2 )

Avereno ny bitwise AND amin'ny sanda nomen'ny v1 sy v2 .

compl ( val )

Avereno ny famenoana bitu ny val .

lshift ( val , count )

Avereno ny lanjan'ny vala , havaozina havia ny isa bit.

na ( v1 , v2 )

Alefaso ny bitwise OR amin'ny sanda nomen'ny v1 sy v2 .

rshift ( val , count )

Mamerina ny lanjan'ny vala , mivadika eo ankavanana amin'ny isa bit.

xor ( v1 , v2 )

Avereno ny bitika XOR amin'ny soatoavin'ny v1 sy v2 .

Fomba fanao iraisam-pirenena

Manomboka amin'ny version 3.1 amin'ny gawk , ireto fonkianao manaraka ireto dia azo ampiasaina ao anatin'ny programa AWK handika ny sora-baventy amin'ny fe-potoana. Ho an'ny antsipiriany feno dia jereo ny GAWK: Programming AWK Effective .

bindtextdomain ( directory [ , domicile ] )

Manondro ny lahatahaka izay jerena ao amin'ny gawk ny tahiry .mo , raha toa ka tsy mety na tsy azo apetraka ao amin'ny toerana `` standard '' (ohatra, mandritra ny fitsapana). Mamerina ilay lahatahiry izay misy ny sehatra . ''

Ny votoatin'ny habaka dia ny sandan'ny TEXTDOMAIN . Raha ny endri-tsoratra dia ny string nilao ( "" ), dia ny bindtextdomain () dia mamerina ny adiresy misy amin'izao fotoana izao.

dcgettext ( string [ , sehatra [ , sokajy ]] )

Mamerina ny fandikana ny string amin'ny sehatra domains ho an'ny sokajy sokajy sokajy . Ny sandan'ny default ho an'ny domains dia ny sandan'ny ankehitriny amin'ny TEXTDOMAIN . Ny sandan'ny default ho an'ny sokajy dia "LC_MESSAGES" .

Raha manome lanjany ho an'ny sokajy ianao , dia tokony ho fehezanteny iray mitovy amin'ny iray amin'ireo sokajy fantatra fantatra ao amin'ny GAWK: Programming AWK Effective . Tsy maintsy manome sehatra an-tsoratra koa ianao. Ampiasao TEXTDOMAIN raha te hampiasa ny dom-diaro amin'izao fotoana izao ianao.

dcngettext ( string1 , string2 , laharana [ , domains [ , sokajy ]] )

Hiverina ny endritsoratra maro ampiasaina amin'ny isa ny fandikana ny string1 sy string2 amin'ny sokajy domains ho an'ny sokajy sokajy sokajy . Ny sandan'ny default ho an'ny domains dia ny sandan'ny ankehitriny amin'ny TEXTDOMAIN . Ny sandan'ny default ho an'ny sokajy dia "LC_MESSAGES" .

Raha manome lanjany ho an'ny sokajy ianao , dia tokony ho fehezanteny iray mitovy amin'ny iray amin'ireo sokajy fantatra fantatra ao amin'ny GAWK: Programming AWK Effective . Tsy maintsy manome sehatra an-tsoratra koa ianao. Ampiasao TEXTDOMAIN raha te hampiasa ny dom-diaro amin'izao fotoana izao ianao.

FIRAISANA USER-DEFINED

Ireo fepetra ao amin'ny AWK dia voafaritra toy izao manaraka izao:

anarana anarana ( lisitry ny parameter ) { fanambarana }

Ny fanao dia novonoina rehefa nantsoina avy amin'ny teny amin'ny endrika na fihetsika. Ny mari-pamantarana marina omena amin'ny antso antso dia ampiasaina mba hampahafantarana ny fari-pitsipika apetraka ao amin'ny asa. Ny array dia nodidiana tamin'ny alàlan'ny fanondroana, ny hafa dia lany ny lanjany.

Satria tsy ampahany amin'ny fiteny AWK ny seha-pifaneraserana, dia tsy misy dikany ny fepetra ho an'ny vohikala eo an-toerana: Nolazaina ho singa fanampiny ao amin'ny lisitry ny mari-pamantarana. Ny fivoriambe dia ny manasaraka ny fari-ponenana eo an-toerana avy amin'ny sehatra tena izy amin'ny sehatra fanampiny ao amin'ny lisitra fanalahidy. Ohatra:

(f, p, q, a, b) # a sy b dia toerana {...} / abc / {...; f (1, 2); ...}

Ny fehezan-teny havia amin'ny antso antso dia takiana hanaraka avy hatrany ny anarana antsoina, tsy misy toerana malalaka midadasika. Izany dia mba hisorohana ny tsy fitoviana amin'ny fampiasana ny fiaraha-miasa amin'ny mpandraharaha. Tsy azo ampiharina amin'ny lahasa amboamboarina voalaza etsy ambony io famerana io.

Mety mifampiankina ny fôkôla ary mety hiverimberina. Ny paikady ampiasaina amin'ny alimanakan'ny toerana dia alaina amin'ny lahatahiry null ary ny isa zero amin'ny fandefasana asa.

Ampiasao ny famerenana miverina mba hamerenana ny sandany amin'ny asa iray. Ny sandan'ny fiverenana dia tsy voafaritra raha tsy misy ny sandany omena, na raha toa ka ny "function" dia miverina amin'ny endriny.

Raha toa ny " -lint" dia nomena, gawk dia mampitandrina momba ny antso ho an'ireo tsy voafaritra tsara ao amin'ny sehatra parse, fa tsy amin'ny fe-potoana. Ny fiantsoana fepetra tsy voafaritra amin'ny fe-potoana dia ny fahadisoana mahafaty.

Ny teny hoe func dia azo ampiasaina amin'ny toeran'ny asa .

FANTASIKA VAOVAO MANOKANA

Manomboka amin'ny version 3.1 amin'ny gawk , azonao atao ny manova haingana ireo tetikasa vaovao ho an'ny mpandika teny gawk . Ny antsipirian-javatra feno dia mihoatra ny habaka amin'ity pejy ity; jereo GAWK: Programa AWK mahomby amin'ny antsipiriany.

Wiki puzzle.svg

Ampifandraiso amin'ny ankapobeny ilay rakitra fanamarinam-pandrafetana voatonona amin'ny object , ary apetaho ny asany ao amin'io zavatra io, mba hanatanterahana azy. Ireo dia tokony omena ho toy ny tady. Mamerina ny sandany naverina amin'ny asa .

Ity asa ity dia omena ary voarakitra ao amin'ny GAWK: Programming Effective AWK , fa ny zava-drehetra momba io endri-javatra io dia mety hiova amin'ny famoahana manaraka. MITOARAKA TSY MISY TSY MISY TSY MISY ADY MISY ANAO AMINAREO izay zavatra tsy tianao hotenenina.

famantarana

pgawk dia manaiky famantarana anankiroa. SIGUSR1 dia mahatonga azy io haka sary ny profil sy ny antso an-tariby mankany amin'ny rakitra ao amin'ny profil, izay na awkprof.out , na izay rakitra rehetra nomena ny - profile . Manohy mihazakazaka izany. Ny SIGHUP dia mahatonga azy haka ny mombamomba ny profil sy ny fonosana ary avy eo miala.

OHATRA

Soraty ary sokafy ny anaran'ny mpampiasa rehetra: BEGIN {FS = ":"} {print $ 1 | " endritsoratra"} : {nlines ++} END {print nlines} Manaraka ny laharan-tarehiny tsirairay avy amin'ny isa ao amin'ny rakitra: {print FNR, $ 0} Nomena anarana sy laharan-tseza (fiovana amin'ny loha-hevitra): {print NR, $ 0}

Internalization

Ny konstante string dia endri-tsoratra voasoritra ao amin'ny dika roa avo roa heny. Ao amin'ny tontolo tsy miteny Anglisy, dia azo atao ny manisy marika ao amin'ny programa AWK rehefa mandefa fandikan-teny amin'ny fiteny natoraly. Ny kofehy toy izany dia voamarika ao amin'ny programa AWK miaraka amin'ny lohandohany (`` _ ''). Ohatra,

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

maka sary an-tsaina foana , tontolo . nefa,

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

Afaka manonta bonjour, monde eto Frantsa.

Misy dingana maromaro tafiditra amin'ny famokarana sy famokarana programa AWK azo atao.

1.

Manampia hetsika BEGIN mba handoavana ny sandan'ny TEXTDOMAIN mba hametraka ny sehatra an-tsoratra amin'ny anarana mifandraika amin'ny programanao.


BEGIN {TEXTDOMAIN = "myprog"}

Izany dia ahafahan'ny gawk mahita ny .mo rakitra mifandraika amin'ny programanao. Raha tsy misy io dingana io dia mampiasa ny hafatra momba ny votoatin'ny hafatra ny gawk, izay mety tsy ahitana dikanteny ho an'ny programanao.

2.

Mariho ireo sarisary rehetra izay tokony adika amin'ny fanadihadiana mitarika.

3.

Raha ilaina, ampiasao ny dcgettext () sy / na ny bindtextdomain () asa ao amin'ny programanao, raha mety.

4.

Run gawk --gen-po -f myprog.awk> myprog.po mba hamoronana loko .po ho an'ny programanao.

5.

Manome fandikana mifanentana, ary manamboatra sy mametraka tahiry .mo .

Ny endri- panompoana iraisam-pirenena dia voafaritra amin'ny antsipiriany amin'ny GAWK: Programming Effective AWK .

Posix Compatibility

Ny tanjona voalohany ho an'ny gawk dia mifanaraka amin'ny fitsipiky ny POSIX, ary koa ny andiany farany amin'ny UNIX awk . Noho izany, ny gawk dia mampiditra ireo endri-javatra hita manaraka izay tsy voalaza ao amin'ny bokin'ny AWK, fa anisan'ny fandikana Bell Labors of awk , ary ao amin'ny POSIX standard.

Ny bokotra dia manondro fa ny famaritana baiko ifanaovana baiko dia miseho rehefa manokatra ny laha-tahiry ho toy ny rakitra iray ny awk , izay aorian'ny famoahana ny baiko BEGIN . Na izany aza, tamin'ny fampiharana teo aloha, rehefa niseho teo anoloan'ny anaran-drakitra toy izany ny fanendrena tahaka izany, dia hitranga alohan'ilay BEGIN block. Ny fangatahana dia miankina amin'io fepetra io. '' Rehefa niova ny tsipika mba handraisana ny antontan-taratasy misy azy, dia nampiana ny -v ny safidy nomena alalana alohan'ny famonoana ny programa mba handraisana ireo fampiharana izay miankina amin'ny fihetsika taloha. (Noporofoin'ny fikambanan'ny Bell Laboratories sy ny mpandrindra GNU io safidy io.)

Ny safidy -W amin'ny fampiharana manokana dia avy amin'ny POSIX standard.

Rehefa manadina hevitra ny gawk, dia mampiasa ny safidy manokana `` - '' ny gawk mba hanondroana ny faran'ny hevitra. Amin'ny fampiharana azy, dia mampitandrina izy fa tsy miraharaha ireo safidy tsy voafaritra hafa. Amin'ny fikarakarana ara-dalàna dia alefa any amin'ny programa AWK ny fandresen-dahatra toy izany.

Ny bokin'ny AWK dia tsy mamaritra ny sandan'ny valiny (srand ()) . Ny fitsipika POSIX dia mamerina ilay voa izay ampiasainy, mba hahafahana mitandrina ny laharana nomerao. Noho izany, ny srand () amin'ny gawk koa dia mamerina ny voany ankehitriny.

Fomba vaovao hafa: Ny fampiasana safidy maro -f (avy amin'ny MKS awk ); ny arovan'ny ENVIRON ; ny \ a , ary \ v escape sequences (natao tany am-piandohana tao Gawk ary naverina naverina tao amin'ny versione Bell Laboratories); ny tolotrasa () sy toupper () ny asa fanorenana (avy amin'ny versione Bell Laboratories); ary ny fepetra fiovan'ny ANSI C amin'ny printf (natao voalohany tao amin'ny versione Bell Laboratories).

Tantara manan-tantara

Misy karazany roa ny fampiharana ny AWK izay manohana ny gawk . Voalohany, azo atao ny miantso ny làlam -pananana fototra () izay tsy vitan'ny hoe tsy misy adihevitra, fa na dia tsy misy fonon-teny aza! Noho izany,

a = length # Holy Algol 60, Batman!

dia mitovy amin'ny an'ny iray

a = lava ()
a = làlan ($ 0)

Io endri-javatra io dia asongadina hoe '' nalaina '' tao amin'ny POSIX standard, ary gawk dia manome fampitandremana mikasika ny fampiasana azy raha - voatondro ao amin'ny baiko baiko.

Ny singa iray hafa dia ny fampiasana ny fanohy na ny fanamboarana ivelan'ny vatana mandritra ny fotoana fohy, na, na manao loop. Ny fampiharana AWK nentim-paharazana dia nampihatra izany fampitahana izany araka ny fanambarana manaraka . Gawk dia manohana io fampiasana io raha toa ka voatondro ny --traditional .

GNU Extensions

Gawk dia manana fanitarana maromaro ho an'ny POSIX awk . Hita ao amin'ity fizarana ity izy ireo. Ny fanitarana rehetra voatanisa eto dia mety ho kilemaina amin'ny fangatahana gawk amin'ny safidy --traditional .

Ireo endri-tsoratra gawk manaraka dia tsy hita ao amin'ny POSIX awk .

*

Tsy misy karoka fitadiavana atao amin'ny rakitra antsoina amin'ny alalana -f . Noho izany ny fari- piainan'ny AWKPATH dia tsy manokana.

*

Ny sanda \ x fandosirana. (Disability with --posix .)

*

Ny fiasa fflush () . (Disability with --posix .)

*

Ny fahafahana hanohy ny andalana manaraka ? ary :. (Disability with --posix .)

*

Konstante oktal sy hexadecimal amin'ny programa AWK.

*

Ny ARGIND , BINMODE , ERRNO , LINT , RT ary TEXTDOMAIN dia tsy miavaka.

*

Ny fari- dehiben'ny IGNORECASE sy ny fiantraikany eo amin'ny sehatra dia tsy misy.

*

Ny famaritana ny saha varimbazaha FIELDWIDTHS sy ny sahan-drakitra.

*

Tsy misy ny array PROCINFO .

*

Ny fampiasana RS ho fanehoana matetika.

*

Ny anaran-drakitra manokana nomena ny fanodinana I / O dia tsy ekena.

*

Ny | & mpanafotra ny famoronana fiaraha-miasa.

*

Ny fahafahana hanasaraka ny olona tsirairay mampiasa ny kofehy tsy misy dikany ho sarobidy ny FS , ary koa ny tohan-kevitra fahatelo amin'ny fizarana () .

*

Ny soso-kevitra faharoa azo ampiharina amin'ny asa akaiky () .

*

Ny soso-kevitra fahatelo ampidirina amin'ny anjara () .

*

Ny fahafahana mampiasa fomba manokana amin'ny printf sy sprintf () .

*

Ny fampiasana ny fanesorana array mba hamafa ny ao anatin'ny rakitra rehetra.

*

Ny fampiasana nextfile handao ny fanodinana ny rakitra ankehitriny.

*

Ny isam-ponina dia 2.500 tamin'ny taona 2006. Ny fisiana ara-daharampehintany ary ara- daharanjarahasin'ilay kaominina dia 49.9731 ° ary -0.3811 ° amin'ny soratra desimaly . Ny faritr'ora dia GMT + 1. Rohy ivelany [hanova | () sy xor () .

*

Lokom-paritra voafaritra.

*

Manampy amin'ny fanavaozana ny lahasa fanorenana vaovao amin'ny asa fanitarana () .

Ny bokin'ny AWK dia tsy mamaritra ny sandan'ny fiverenana () . Ny GWk () () dia mamerina ny lanjany avy amin'ny fclose (3), na pclose (3), rehefa mamarana ny rakitra na tavoahangy vokariny. Mamerina ny fivoahana amin'ny fivoahana rehefa mamarana ny fantsona fidirana. Ny sandan'ny fiverenana dia -1 raha toa ka tsy nosokafana tamin'ny alàlan'ny fanodinana ny rakitra voatondro, sodina na ko-process.

Raha ny gawk dia raisina miaraka amin'ny safidy --traditional , raha ny argument fs ny -f dia 't' ', dia ny FS no mametraka ny karazana tab. Mariho fa ny fanondroana ny gawk- \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ Satria ity dia tranga manokana mampiady, fa tsy ny fitondran-tena fototra. Ity fihetsika ity koa tsy mitranga raha voatondro ny - posix . Ny tena marina dia mahazo karazana tabilao toy ny separateur ny saha, tsara ny mampiasa teny tokana tokana: gawk -F '\ t' ....

Jereo ny didy hafa : miandry , lp , feno , execv , getfacl , ioctl , uniq , rmmod , pvcreate , rsh , unix2dos , cal , fs , cd , iwpriv , swapon , autofs , talk , motd , free , lpr , execl , fdisk , at , iza , iwconfig , ifconfig , vgdisplay , misokatra , lsmod , ntohs , mailq , vono , wtmp