Kawm cov lus qhuab qhia Linux - gawk

Lub npe

gawk - qauv kev soj ntsuam thiab ua hom lus

Synopsis

gawk [POSIX los yog GNU style xaiv] -f kev pab cuam cov ntaub ntawv [ - ] ntaub ntawv ...
gawk [POSIX los yog GNU style xaiv] [ - ] qhov kev pab cuam cov ntaub ntawv ...

pgawk [POSIX los yog GNU style xaiv] -f kev pab cuam cov ntaub ntawv [ - ] ntaub ntawv ...
Pgawk [POSIX los yog GNU style xaiv] [ - ] qhov kev pab cuam cov ntaub ntawv ...

Kev piav qhia

Gawk yog GNU Project qhov kev pib ntawm AWK programming lus. Nws haum rau lub ntsiab txhais ntawm cov lus nyob hauv POSIX 1003.2 Kev Hais Qhia Yam Lus thiab Kev Siv Kab Mob. Qhov no version nyeg yog raws li kev piav qhia nyob rau hauv AWK Programming Language , los ntawm Aho, Kernighan, thiab Weinberger, nrog cov nta ntxiv nyob rau hauv V System 4 Release of UNIX awk . Gawk kuj tseem ceeb tshaj plaws ntawm Bell Laboratories awk extensions, thiab ntau tus GNU qhov kev txuas ntxiv.

Pgawk yog tus txheej txheem ntawm cov lus sib thooj. Nws yog zoo tib yam rau txhua txoj kev rau gawk , tshwj tsis yog tias cov kev pab cuam khiav qeeb qeeb, thiab nws tau ua tiav qhov kev tso tawm hauv cov ntaub ntawv awkprof.out thaum ua tiav. Saib - xaiv qhov xaiv, hauv qab no.

Cov kab hais kom ua muaj cov kev xaiv rau kev yoojyim rau nws tus kheej, AWK cov kev pab cuam (yog tias tsis muaj kev pabcuam ntawm -f lossis --file kev xaiv), thiab qhov tseemceeb uas yuav tsum muaj nyob rau hauv ARGC thiab ARGV uantej txhais AWK.

Kev xaiv hom

Gawk xaiv tej zaum yuav yog POSIX ib tsab ntawv xaiv, lossis GNU style ntev xaiv. POSIX kev xaiv pib nrog ib zaug xwb '`-' ', thaum xaiv ntev nrog'` - ''. Cov kev xaiv ntev yog muab rau ob qho tib si GNU nta thiab cov qauv POSIX.

Ua raws li tus txheej txheem POSIX, gawk -specific xaiv tau nkag ntawm kev sib ceg rau -W xaiv. Ntau hom- W kev xaiv yuav muab khoom noj Txhua qhov kev xaiv -W muaj qhov xaiv ntev ntev, raws li ntxaws nram qab no. Kev sib ceg rau cov kev xaiv ntev yog koom nrog qhov kev xaiv los ntawm kev = kos npe, tsis muaj qhov chaw sib txuam, los yog lawv yuav tsum tau muaj nyob rau cov kab lus txuas ntxiv mus. Cov kev xaiv ntev yuav raug sau ua luv luv, tsuav yog hais tias lub ntsiab lus tseem tshuav.

Xaiv

Gawk lees txais cov kev xaiv nram qab no, teev cov ntawv.

-F fs

- fg-separator fs Siv fs rau lub teb input separator (tus nqi ntawm qhov txawv FS ntawm predefined).

-v var = val

- ntim var = val Assign value val rau qhov var var , ua ntej yuav pib ntawm qhov kev pab cuam pib. Qhov kev hloov no kuj muaj nyob rau BEGIN block ntawm qhov kev pabcuam AWK.

-f program-file

- ua ntaub ntawv thov nyeem ntawv AWK qhov kev pabcuam los ntawm qhov kev pabcuam ua ntaub ntawv thov , tsis yog los ntawm qhov kev hais ua thawj kab lus. Siv ntau hom -f (lossis --file ) xaiv.

-mf NNN

-mr NNN Siv ntau yam cim xeeb rau NNN . Tus chij f yog qhov siab tshaj plaws ntawm qhov chaw, thiab tus chij choj teev tus nqi siab tshaj plaws. Cov chij ob thiab qhov kev xaiv -m yog los ntawm Bell Laboratories tshawb xyuas version of UNIX awk . Lawv tsis quav ntsej los ntawm gawk , vim gawk twb tsis muaj kev txwv ua ntej.

-Thaum sib tw

-C txwm

-Cov ntawv

--ntxhais khiav hauv hom kev ywj pheej. Hauv hom kev sib tw, gawk behaves identical rau UNIX awk ; tsis paub meej txog GNU qhov kev txuas ntxiv tshwj xeeb. Kev siv ntawm - nqi lus tseem ceeb dua lwm hom ntawm qhov kev xaiv no. Saib GNU nruj me ntsis , hauv qab, kom paub ntxiv.

-Tej copyleft

-Wam copyright

--copyleft

--copyright Sau cov ntawv luv luv ntawm GNU cov ntaub ntawv xov xwm ntawm tus txheej txheem tso tawm thiab tawm tau zoo.

-W dump-variables [ = file ]

- Dump-variables [ = file ] Sau cov npe ntawm cov qhabnias thoob ntiajteb, lawv hom thiab qhov kawg ntawm cov ntaub ntawv . Yog tias tsis muaj ntaub ntawv , gawk siv cov ntaub ntawv hu ua awkvars.out hauv cov npe tam sim no.

Muaj ib daim ntawv teev tag nrho cov kev hloov hauv ntiaj teb no yog ib txoj hauv kev zoo los mus nrhiav cov qauv kev ua yuam kev hauv koj cov kev pab cuam. Koj yuav tau siv qhov kev xaiv no yog tias koj muaj cov kev pabcuam loj nrog ntau lub zog, thiab koj xav paub tseeb tias koj cov haujlwm tsis yog siv lub ntiajteb lub zog uas koj xav tau los ua hauv zos. (Qhov no yog qhov yuam kev tshwj xeeb tau yooj yim los ua cov npe yooj yooj yim xws li kuv , j , thiab hais txog.)

-W pab

-W kev siv

- pabcuam

- Sau Ntawv Sau lub ntsiab lus luv luv ntawm cov kev xaiv muaj nyob rau ntawm tus qauv tso tawm. (Ib qho ntawm GNU Coding Cov Kev Cai , cov kev xaiv no ua rau muaj kev tawm tam sim, kev tawm tau zoo.)

-W lint [ = tuag ]

--lint [ = tuag ] Muab lus ceeb toom txog kev tsim muaj kev sib txuam lossis tsis yog-portable rau lwmAWAW kev siv. Nrog kev yeem sib cav ntawm kev tuag , cov lus ceeb toom ntsig yog ua yuam kev ua yuam kev. Qhov no tej zaum yuav ua rau tsis zoo, tab sis nws siv yuav yeej txhawb kev tsim kho cov kev pab cuam AWK.

-Tsis muaj hnub qub

--lint-laus Muab cov lus ceeb toom txog kev tsim duab uas tsis txav mus rau qhov qub version ntawm Unix awk .

-W gen-po

Ntaus-thiab-Piv Scan thiab ua haujlwm rau AWK kev pabcuam, thiab tsim ib daim ntawv GNU .po cov ntaub ntawv tso rau hauv cov txheej txheem tso tawm nrog txhua qhov chaw nyob hauv lub program. Qhov kev pab cuam nws tus kheej tsis yog sau tseg. Saib ntawm GNU gettext faib rau cov ntaub ntawv ntxiv rau .po cov ntaub ntawv.

-W non-decimal-data

--non-decimal-data Paub txog cov cim octal thiab hexadecimal hauv cov ntaub ntawv tawm tswv yim. Siv qhov kev xaiv no nrog ceev faj!

-Th posix

--posix Qhov no hloov ntawm hom kev xaiv, nrog rau cov kev txwv ntxiv nram qab no:

*

\ kev khiav tawm sequences tsis pom.

*

Tsuas yog qhov chaw thiab tab ua raws li kev cais tawm thaum FS teem caij rau ib qhov chaw, newline tsis.

*

Koj mus tsis tau cov kab tom qab ? thiab :.

*

Synonym func rau lo lus tseem ceeb yog tsis paub.

*

Cov neeg tsav tsheb ** thiab ** = tsis tuaj yeem siv rau qhov chaw ^ thiab ^ = .

*

Tus fflush () muaj nuj nqi tsis muaj.

-W profile [ = prof_file ]

--profile [ = prof_file ] Xa profiling cov ntaub ntawv rau prof_file . Lub neej ntawd yog awkprof.out . Thaum khiav nrog gawk , qhov profile tsuas yog ib 'nkauj zoo nkauj' 'version ntawm qhov kev pab cuam. Thaum khiav nrog pgawk , qhov profile muaj tso suav ntawm txhua daim ntawv qhia nyob rau hauv qhov kev zov me nyuam nyob rau hauv cov npoo laug thiab muaj nuj nqi hu suav rau txhua tus neeg siv lag luam.

-W rov-luv

- ntu-Interval Pab kom siv cov lus qhia ntawm lub caij nyoog hauv cov kev qhia sib piv (saib Cov Lus Hais , hauv qab). Cov kab lus ncaj ncees tsis yog kev lig kev cai nyob hauv cov lus AWK. Tus qauv POSIX ntxiv rau lawv, ua rau awk thiab egrep kom sib npaug. Txawm li cas los xij, lawv txoj kev siv yuav ua rau cov kev pab cuam AWK qub qub dua, yog li ntawd, gawk tsuas yog muab rau lawv yog hais tias lawv tau thov nrog qhov kev xaiv no, lossis thaum twg - kev cai teev npe.

-W yog qhov program-text

- Txuas Kev Pabcuam-text Siv qhov program-text ua AWK program source code. Qhov kev tso cai no yuav ua rau kev yooj yim intermixing ntawm lub tsev qiv ntawv kev siv zog (siv ntawm lub- f thiab -file xaiv) nrog qhov chaws nkag rau ntawm kab hais kom ua. Nws yog npaj rau cov laus nruab nrab ntawm cov kev pabcuam AWK uas siv rau hauv cov ntawv sau sib txawv.

-W version

--version Print version cov lus qhia rau hauv no xyov daim qauv ntawm gawk ntawm tus qauv tso zis. Qhov no yog qhov tseem ceeb rau kev paub yog tias daim qauv ntawm cov kabmob ntawm koj lub cev tam sim no yog rau hnub nrog kev saibxyuas lub Free Software Foundation yog kev faib tawm. Qhov no kuj tseem ceeb thaum qhia txog cov kab. (Ib qho ntawm GNU Coding Cov Kev Cai , cov kev xaiv no ua rau muaj kev tawm tam sim, kev tawm tau zoo.)

- Lub sijhawm teeb rau thaum xaus. Qhov no pab tau ntxiv cov lus sib cav rau AWK qhov kev pab cuam nws tus kheej kom pib nrog lub '`-' '. Qhov no yog rau kev sib haum xeeb nrog cov kev sib cav parsing siv los ntawm ntau cov kev pab cuam POSIX.

Hauv hom kev sib tw, lwm txoj kev xaiv yog flagged ua tsis tau, tab sis yog txwv tsis pub. Hauv kev ua haujlwm, ntev li ntev raws li qhov kev pab cuam tau txais kev pabcuam, cov kev xaiv tsis paub yuav kis mus rau AWK qhov kev pab cuam hauv ARGV array rau kev ua. Qhov no yog qhov tshwj xeeb tshaj yog pab khiav AWK cov kev pab cuam ntawm lub '#!' 'Executable txhais lus mechanism.

AWK PROGRAM KEV KAWM

Ib qho AWK cov kev pabcuam muaj xws li cov qauv ntawm cov qauv kev ua haujlwm thiab cov kev xaiv ua haujlwm tau xaiv.

qauv { ua hauj lwm cov lus }

muaj nuj nqi lub npe ( parameter sau ) { statements }

Gawk ua ntej nyeem qhov kev pab cuam los ntawm qhov kev pab cuam cov ntaub ntawv (s) yog hais tias tau teev lus, los ntawm kev sib ceg rau - kev pab cuam , los yog los ntawm qhov kev sib cav tsis tau xaiv rau ntawm cov kab hais kom ua. Cov- f thiab -source cov kev xaiv yuav raug siv ntau zaus ntawm kev hais kom ua. Gawk nyeem cov ntawv nyeem cov ntawv raws li yog hais tias tag nrho cov kev pab cuam cov ntaub ntawv s thiab hais kom ua cov kab xawb cov lus tau muab sib xyaw ua ke. Qhov no yog pab tau rau cov tuam tsev ntawm AWK cov kev khiav dej num, tsis tas muaj lawv nyob hauv txhua qhov kev pab tshiab AWK uas siv lawv. Nws tseem muaj lub peev xwm los ua cov ntawv qiv ntawv nrog cov kev pab cuam kab kev txib.

Qhov chaw hloov AWKPATH qhia txog kev tshawb nrhiav los siv thaum nrhiav cov ntaub ntawv muaj npe-nrog kev xaiv. Yog tias qhov kev hloov no tsis muaj nyob, txoj kev pheej yig yog ".: / Usr / local / share / awk" . (Cov ntaub ntawv yuav txawv li cas, nyob ntawm seb qhov teeb meem tau tsim thiab txhim kho li cas.) Yog tias ib lub npe hu rau -f xaiv muaj tus cim \ "\ / '', tsis muaj kev nrhiav kev.

Gawk ua rau AWK cov kev pab cuam raws li hauv qab no. Ua ntej, tag nrho cov hauj lwm uas tsis paub meej hais txog ntawm txoj kev -v xaiv tau. Tom ntej, gawk compiles qhov kev pab cuam rau hauv ib daim ntawv nrog. Tom qab ntawd, gawk executes cov cai hauv lub BEGIN block (s) (yog tias muaj), thiab ces proceeds nyeem txhua cov ntaub ntawv muaj npe hauv ARGV array. Yog tias tsis muaj cov ntaub ntawv muaj npe rau ntawm kab hais kom ua, gawk nyeem cov txheej txheem.

Yog tias ib daim ntawv filename nyob ntawm kab ntawv hais kom muaj daim ntawv var = val nws raug kho raws li qhov haujlwm tsis paub meej. Qhov var yuav hloov tau qhov nqi ntawm val . (Qhov no muaj tshwm sim tom qab muaj kev thaiv kab ( B) thaiv kev khiav tawm.) Kev ua qhov txawv ntawm qhov txawv ntawm qhov kev ua kom muaj nuj nqis rau kev siv qhov tseem ceeb rau cov kev hloov AWK siv los tswj cov tswv yim li cas rau cov lag luam thiab cov ntaub ntawv. Nws tseem yog qhov tseem ceeb rau kev tswj lub xeev yog tias muaj ntau daim ntawv tso cai yuav tsum tau dhau ib tus neeg cov ntaub ntawv.

Yog hais tias tus nqi ntawm ib qho ntawm ARGV yog npliag ( "" ), gawk skips dua nws.

Rau txhua cov ntaub ntawv hauv cov tswv yim, kev kuaj mob gawk los saib seb nws puas muaj cov qauv hauv cov kev pab cuam AWK. Rau txhua tus qauv ntawm cov ntaub ntawv sib tw, qhov kev txuam nrog kev ua haujlwm raug ua tiav. Cov qauv no tau sim nyob rau hauv qhov kev txiav txim uas lawv tshwm sim hauv qhov kev zov me nyuam.

Thaum kawg, tom qab tag nrho cov tawm tswv yim lawm, gawk executes cov cai hauv lub block END (yog tias muaj).

Cov qhauv ntawv, Cov Ntaub Ntawv, thiab Cov Liaj Teb

AWK cov qhob muaj zog; lawv tuaj rau hauv lub neej thaum lawv thawj zaug siv. Lawv qhov tseem ceeb yog cov xov tooj ntiv taw los yog cov hlua, los yog ob qho tib si, nyob ntawm seb lawv siv li cas. AWK kuj muaj ib qhov dav arrels; arrays nrog ntau qhov loj me yuav simulated. Muaj ntau yam ua piv txwv hais tias yog cov kev pab cuam; cov no yuav piav qhia raws li qhov xav tau thiab sau tau hauv qab no.

Cov ntaub ntawv

Feem ntau, cov ntaub ntawv raug cais los ntawm cov cim tshiab. Koj tuaj yeem tswj xyuas cov ntaub ntawv khaws tseg li cas los ntawm qhov muab qhov tseem ceeb rau cov kev tsim muaj peev xwm ntawm RS -built-in. Yog tias RS yog txhua tus neeg ua cim, tus cim ntawd cais cov ntaub ntawv. Yog tias tsis yog, RS yog ib qho kev qhia tawm. Cov ntawv sau nyob hauv cov lus qhia uas sib dhos rau cov lus qhia no tsis pub cais tawm. Txawm li cas los, hauv hom kev sib tw, tsuas yog thawj tus cwj pwm ntawm nws cov hlua nqi siv rau kev cais cov ntaub ntawv. Yog tias RS raug teem rau txoj hlua thov, ces cov ntaub ntawv raug cais tawm ntawm kab dawb. Thaum Vev Xaib tso rau ntawm txoj hlua (null), cov cim tshiab ua ib txwm ua raws li lub teb cais, ntxiv rau qhov txiaj ntsig FS yuav muaj.

Teb

Raws li txhua cov ntaub ntawv tawm tswv yim nyeem, gawk faib cov ntaub ntawv mus rau tom teb , siv tus nqi ntawm FS kuj sib txawv deb raws li thaj chaw cais. Yog FS yog ib tus cwj pwm, cov liaj teb raug sib cais los ntawm tus cwj pwm ntawd. Yog tias FS yog tus neeg tsis muaj txoj hlua, ces txhua tus neeg yuav ua tiav ib qho chaw. Txwv tsis pub, FS yuav tsum yog ib qho qhia tag nrho. Hauv cov ntaub ntawv tshwj xeeb uas FS yog ib qhov chaw, cov liaj teb raug sib cais los ntawm cov chaw thiab / lossis tabs thiab / lossis cov xov xwm tshiab. (Tab sis pom qhov kev sib tham ntawm --posix , hauv qab). LUS CEEB TOOM: Tus nqi ntawm IGNORECASE (saib hauv qab) kuj tseem muaj kev cuam tshuam li cas li cov cheeb tsam faib thaum FS yog ib qho kev qhia tawm, thiab cov ntaub ntawv sib txawv li cas thaum RS piav qhia.

Yog tias FIELDWIDTHS kuj sib txawv thiab muab tso rau ib qho chaw sib cais, txhua daim teb yuav tsum muaj qhov dav dav, thiab gawk faib cov ntaub ntawv uas siv cov lus qhia dav dav. Tus nqi ntawm FS raug suav. Muab tus nqi tshiab rau FS overrides kev siv FIELDWIDTHS , thiab rov qab coj tus cwj pwm tsis zoo.

Txhua daim teb nyob rau hauv cov ntaub ntawv tawm tswv yim yuav tsum tau muab los ntawm nws txoj hauj lwm, $ 1 , $ 2 , thiab ntxiv rau. $ 0 yog tag nrho cov ntaub ntawv. Teb cov lus tsis tau hais los ntawm cov hnub nyoog:

n = 5
sau $ n

luam tawm tsib qhov hauv cov ntaub ntawv tawm tswv yim.

Qhov NF hloov mus rau tag nrho cov lus teb hauv cov ntaub ntawv tawm tswv yim.

Cov npe rau cov tsis muaj nyob (ie teb tom qab $ NF ) tsim cov null-txoj hlua. Tiam sis, muab tso rau ib qho tsis-existent field (xws li, $ (NF + 2) = 5 ) tsub kom tus nqi ntawm NF , tsim ib qho kev nrhav teb nrog cov null hlua li lawv cov nqi, thiab ua rau tus nqi ntawm $ 0 yuav tsum recomputed, nrog lub teb raug sib cais los ntawm tus nqi ntawm OFS . Cov ntsiab lus rau cov chaw tsis zoo teb tau ua rau kev ua yuam kev tuag. Decrementing NF ua rau qhov tseem ceeb ntawm qhov chaw dhau los tus nqi tshiab poob, thiab tus nqi ntawm $ 0 yuav tsum tau recomputed, nrog cov teb raug cais los ntawm tus nqi ntawm OFS .

Muab tus nqi rau ib qho kev ua haujlwm uas ua tiav rau qhov ua rau tag nrho cov ntaub ntawv yuav tsum rov qab tsim dua thaum $ 0 raug xa rov qab. Zoo sib xws, muab ib qho txiaj ntsim rau $ 0 ua rau cov ntaub ntawv yuav rov qab ua dua, tsim kom muaj qhov tseem ceeb tshiab rau thaj chaw.

Built-in Variables

Gawk 's built-in variables yog:

ARGC

Cov kab lus hais kom ua cov kab lus (tsis suav cov kev xaiv rau kev yoojyim , lossis qhov chaw pabcuam).

ARGIND

Qhov Performance index hauv ARGV ntawm cov ntaub ntawv tam sim no tau ua tiav.

ARGV

Array ntawm cov kab lus hais kom ua kab. Qhov array yog indexed ntawm 0 rau ARGC - 1. Dynamically hloov tus txheem ntawm ARGV tuaj yeem tswj cov ntaub ntawv siv rau cov ntaub ntawv.

BINMODE

Rau cov tshuab tsis yog POSIX, qhia txog kev siv txoj cai "binary '' rau tag nrho cov ntaub ntawv I / O. Numeric qhov tseem ceeb ntawm 1, 2, lossis 3, hais kom meej tias cov ntaub ntawv tawm tswv yim, cov ntaub ntawv tso tawm, lossis tag nrho cov ntaub ntawv, raws li, yuav tsum siv binary I / O. Qhov tseem ceeb ntawm txoj hlua "r" , lossis "w" qhia tias cov ntaub ntawv tawm tswv yim, los yog cov ntaub ntawv tso tawm, raws li, yuav tsum siv binary I / O. Qhov tseem ceeb ntawm txoj hlua "rw" lossis "wr" qhia tias txhua yam ntaub ntawv yuav tsum siv binary I / O. Lwm tus nqi ntawm txoj hlua raug kho raws li "rw" , tab sis ua kom muaj lus ceeb toom.

CONVFMT

Hloov cov qauv rau cov zauv, "% .6g" , los ntawm lub neej ntawd.

ENVIRON

Ib qho array uas muaj qhov tseem ceeb ntawm qhov chaw nyob tam sim no. Tus array yog indexed los ntawm qhov chaw hloov, txhua lub caij yog tus nqi ntawm qhov uas txawv (xws li, ENVIRON ["HOME"] yuav yog / tsev / arnold ). Hloov cov array no tsis cuam tshuam rau ib puag ncig pom los ntawm cov kev pab cuam uas gawk spawns ntawm redirection lossis system () muaj nuj nqi.

ERRNO

Yog hais tias muaj qhov yuam kev muaj tshwm sim los ntawm kev ua haujlwm rau getline , thaum lub sij hawm nyeem rau getline , lossis thaum kaw () , ces ERRNO yuav muaj ib txoj hlua piav txog qhov yuam kev. Tus nqi yog raug txhais lus hauv cov zos uas tsis yog lus Askiv.

FIELDWIDTHS

Ib daim ntawv dawb-qhov chaw sib cais ntawm cov fieldwidths. Thaum teem, gawk parses cov tswv yim rau cov liaj teb ntawm dav dav, tsis siv tus nqi ntawm FS kuj sib txawv thiab raws li thaj chaw cais.

FILENAME

Lub npe ntawm cov ntaub ntawv tam sim no. Yog tias tsis muaj cov ntaub ntawv teev nyob rau ntawm kab hais kom ua, tus nqi ntawm FILENAME yog '`-' '. Txawm li cas los xij, FILENAME tsis muaj npe nyob hauv BEGIN nris (tshwj tsis yog los ntawm cov neeg tau txais).

FNR

Tus naj npawb ntawv sau tawm hauv cov ntaub ntawv tam sim no.

FS

Lub thawv input separator, ib qhov chaw ntawm lub neej ntawd. Saib Cov Kab Tsi , saum toj no.

IGNORECASE

Tswj cov ntaub ntawv-rhiab heev ntawm txhua qhov kev qhia tawm thiab cov hlua txoj haujlwm. Yog tias IGNORECASE muaj qhov tsis muaj tus nqi qis, ces cov kev sib piv thiab kev sib piv hauv cov kev cai, teb splitting nrog FS , cov ntaub ntawv cais nrog RS , cov kev qhia txuam nrog ~ thiab ! ~ , Thiab cov gensub () , gsub () , index () , match () , split () , thiab sub () built-in functions tag nrho cov neeg tsis mloog lus thaum ua cov kev ua hauj lwm tsis tu ncua. CEEB TOOM: Array subscripting tsis cuam ​​tshuam, tsis yog cov asort () muaj nuj nqi.

Yog li, yog IGNORECASE tsis sib npaug rau xoom, / aB / ntais tag nrho cov hlua "menyuam" , "aB" , "AB" , thiab "AB" . Raws li nrog tag nrho AWK zog, tus nqi pib ntawm IGNORECASE yog xoom, yog li txhua yam kev qhia thiab cov hlua haujlwm yog feem ntau rooj plaub-rhiab. Nyob rau hauv Unix, tag nrho ISO 8859-1 Latin-1 cim teeb yog siv thaum saib tsis tau cov ntaub ntawv.

LINT

Muab kev tswj kev tswj ntawm qhov kev xaiv -lint los ntawm hauv AWK program. Thaum twg muaj tseeb, gawk luam tawm lint cov lus ceeb toom. Thaum tsis muaj tseeb, nws tsis yog. Thaum muab tus nqi "tuag" rau cov hlua, cov lus ceeb toom qis ua rau ua yuam kev, raws nraim li - Lwm yam nqi muaj tseeb tiag cia li luam tawm lus ceeb toom.

NF

Cov naj npawb ntawm cov lus teb hauv cov ntaub ntawv tawm tswv yim tam sim no.

NR

Tag nrho cov naj npawb ntawm cov ntaub ntawv tau pom kom deb.

OFMT

Cov txheej txheem tso tawm rau cov zauv, "% .6g" , yog lub neej ua ntej.

OFS

Cov zis tawm ntawm cov zis tawm, qhov chaw ntawm lub neej ntawd.

ORS

Cov ntaub ntawv tso zis tawm cais, los ntawm lub neej tshiab.

PROCINFO

Cov ntsiab lus ntawm qhov array no muab tau cov lus qhia txog kev khiav haujlwm AWK. Hauv qee lub tshuab, muaj cov ntsiab lus nyob rau hauv cov array, "group1" los ntawm "pawg n " rau qee cov n , uas yog cov pab pawg ntxiv uas cov txheej txheem muaj. Siv cov nyob hauv tus neeg teb xov tooj kom ntsuam xyuas cov ntsiab lus no. Cov ntsiab lus hauv qab no yog qhov yuav tsum muaj:

PROCINFO ["egid"]

tus nqi ntawm qhov kev hu ua getegid (2).

PROCINFO ["euid"]

tus nqi ntawm qhov kev hu rau geteuid (2).

PROCINFO ["FS"]

"FS" yog hais tias muaj kev sib cais nrog FS siv tau, lossis "FIELDWIDTHS" yog hais tias qhov kev cais tawm nrog FIELDWIDTHS yuav siv tau.

PROCINFO ["mus"]

tus nqi ntawm qhov hu ua getgid (2).

PROCINFO ["pgrpid"]

tus txheej txheem pabcuam ID ntawm tus txheej txheem tam sim no.

PROCINFO ["pid"]

tus txheej txheem ID ntawm tus txheej txheem tam sim no.

PROCINFO ["ppid"]

tus niam txiv tus kheej daim ntawv ID ntawm txoj haujlwm tam sim no.

PROCINFO ["uid"]

tus nqi ntawm qhov hu ua getuid (2).

RS

Cov ntaub ntawv input separator, los ntawm default a newline.

RT

Cov ntaub ntawv xaus. Gawk teev RT rau cov ntawv tawm tswv yim uas ua raws li cov cim los yog kev qhia tawm los ntawm RS .

RSTART

Performance index ntawm tus thawj cim matched los ntawm match () ; 0 yog tias tsis muaj match. (Qhov no implies tias cim indices pib ntawm ib qho.)

RLENGTH

Qhov ntev ntawm txoj hlua sib npaug los ntawm kev sib tw () ; -1 Yog tias tsis muaj phim.

SUBSEP

Cov cim uas siv cais cais ntau ntau hauv cov qauv ntawm cov qauv, ntawm default "\ 034 \" .

TEXTDOMAIN

Cov ntawv sau ntawm AWK program; siv los nrhiav cov kev txhais lus hauv zos rau cov kev pab cuam cov hlua.

Arrays

Cov arrays yog subscripted nrog ib qho kev qhia ntawm cov square nkhaus ( [ thiab ] ). Yog hais tias qhov kev qhia yog ib qho kev qhia sau ( expr , expr ...) ces tus subscript subscript yog ib txoj hlua uas muaj cov ntsiab lus ntawm cov nqe lus (txoj hlua) ntawm txhua qhov kev qhia, sib cais los ntawm tus nqi ntawm qhov SUBSEP kuj sib txawv thiab. Qhov chaw no yog siv los simulate cov duab sib luag. Piv txwv li:

Kuv = "A"; j = "B"; k = "C"
x [kuv, j, k] = "nyob zoo, lub ntiaj teb \"

muab cov hlua "nyob zoo, lub ntiaj teb \" rau lub caij ntawm cov x x uas yog indexed los ntawm txoj hlua "A \ 034B \ 034C" . Tag nrho cov arrays hauv AWK yog associative, ie indexed ntawm qhov tseem ceeb ntawm txoj hlua.

Tus neeg teb xov tooj tshwj xeeb hauv yuav siv tau yog tias los yog qhov tseem ceeb los saib yog tias ib qho array muaj qhov ntsuas los ntawm ib qho nqi.

yog tias (val hauv cov array) luam array [val]

Yog hais tias tus array muaj ntau cov subscripts, siv (i, j) hauv array .

Hauv kev txua kuj tseem siv tau rau ib lub voj kom rov ua dua tag nrho cov ntsiab ntawm ib qho array.

Ib lub caij yuav raug rho tawm ntawm ib qho array uas siv cov lus rho tawm. Cov lus rho tawm kuj tseem siv tau los rhuav tshem tag nrho cov ntsiab lus ntawm ib qho array, tsuas yog los ntawm specifying lub npe teev tsis muaj subscript.

Qhov Sib Pauv Hloov thiab Hloov Pauv

Cov qhab-nees thiab cov liaj teb tej zaum yuav yog (floating point) cov zauv, lossis cov hlua, los yog ob qho tib si. Yuav ua li cas tus nqi ntawm ib qhov txawv ntawm qhov txawv yog txhais raws li nws cov ntsiab lus teb. Yog tias siv cov zauv nyob hauv numeric, nws yuav raug kho raws li tus lej, yog siv los ua txoj hlua nws yuav raug kho raws li ib txoj hlua.

Txhawm rau yuam kom ib tug kuj sib txawv thiab yuav tau kho raws li tus nab npawb, ntxiv 0 rau nws; mus yuam kom nws raug kho raws li ib txoj hlua, ua kom tiav nrog rau txoj hlua thov.

Thaum ib txoj hlua yuav tsum hloov dua siab tshiab rau ib tug lej, qhov kev hloov siab los ntseeg yog siv strtod (3). Ib tug xov tooj yog hloov mus rau ib txoj hlua los ntawm kev siv tus nqi ntawm CONVFMT ua ib hom ntawv txoj hlua rau sprintf (3), nrog rau tus nqi ntawm qhov sib txawv ntawm qhov sib txawv ntawm qhov sib cav. Txawm li cas los xij, txawm tias tag nrho cov zauv hauv AWK yog floating-point, qhov tseem ceeb yog ib txwm muab hloov ua cov zauv. Yog li, muab

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

tus kuj sib txawv thiab b muaj qhov value string ntawm "12" thiab tsis "12.00" .

Gawk ua kev sib piv raws li hauv qab no: Yog tias ob tug qhev muaj pes tsawg , lawv muab piv rau ntau. Yog tias ib tus nqi yog numeric thiab lwm tus muaj qhov value string uas yog ib lub 'numeric string,' 'ces kev sib piv kuj tseem siv tau ntau. Txwv tsis pub, tus nqi zauv yog hloov mus rau ib txoj hlua thiab kev sib piv ntawm txoj hlua. Ob txoj hlua muaj sib piv, ntawm chav kawm, raws li cov hlua. Nco ntsoov tias tus Qauv POSIX siv qhov kev txiav txim siab ntawm `` numeric string '' qhov txhia chaw, txawm tias muaj txoj hlua ruaj ruaj. Txawm li cas los, qhov no yog qhov tseeb tsis yog, thiab gawk tsis ua qhov no. (Tsi, qhov no yog tsau nyob rau tom ntej version ntawm tus txheej txheem.)

Nco ntsoov tias txoj hlua ruaj ruaj, xws li "57" , tsis muaj cov hlua ntawm cov zauv, lawv cov hlua ruaj ruaj. Lub tswv yim ntawm `` numeric hlua '' tsuas yog siv rau cov lus teb, cov lus qhia txog kev lag luam, cov ntaub ntawv , ARGV cov ntsiab lus, ENVIRON ntsiab thiab cov ntsiab lus ntawm ib qho kev tsim los ntawm split () uas yog cov lej numeric. Cov tswv yim yooj yim yog tias neeg siv cov tswv yim , thiab tsuas yog tus neeg siv cov tswv yim, uas zoo li tooj, yuav tsum tau kho txoj kev ntawd.

Uninitialized variables muaj tus nqi numeric 0 thiab cov hlua nqi "" (tus thov, lossis khoob, hlua).

Sab Nraud thiab Hexadecimal Constants

Pib nrog version 3.1 ntawm gawk, koj yuav siv C-style octal thiab hexadecimal constants hauv koj qhov kev pab cuam AWK qhov chaws. Piv txwv, lub octal tus nqi 011 yog sib npaug rau decimal 9 , thiab tus nqi hexadecimal 0x11 yog sib npaug rau decimal 17.

String Constants

Cov hlua constants hauv AWK yog cov sib lawv liag ntawm cov cim los ntawm ob nqe lus ( " )." Nyob hauv cov hlua, cov sequences cov khiav tawm raug lees paub, xws li hauv C. Cov no yog:

\\

Ib tug qauv nraub qaum ris.

\ a

Tus 'alert' lub cim; feem ntau yog ASCII BEL tus cwj pwm.

b

backspace.

\ f

daim ntawv pub.

\ n

newline.

\ r

xa rov qab.

\ t

Kab rov tav.

\ v

ntsug tab.

\ x x ntiv xoo

Tus cim uas sawv cev los ntawm txoj hlua ntawm nws cov xaj hoom rau tom qab lub x . Raws li hauv ANSIC, tag nrho cov lus hauv qab no hexadecimal yog suav tias yog ib feem ntawm txoj kev khiav tawm. (Qhov no yuav tsum tau qhia rau peb txog yam tsim los ntawm kev tsim hom lus los ntawm pab pawg.) Piv txwv, "\ x1B \" yog tus ua cim ASCIIESC (khiav tawm).

\ ddd

Tus cim uas sawv cev los ntawm 1-, 2-, los yog 3-zauv sib lawv liag ntawm cov cim kaum plaub. Xws li, \ "033 \" yog ASCII ESC (khiav tawm) tus cwj pwm.

\ c

Qhov cim ua cim c .

Txoj kev khiav tawm ntawm qhov kev khiav tawm kuj tseem siv tau rau hauv cov lus qhia tsis tu ncua (xws li, / [/ t \ ​​f \ n \ r \ v] \ / ntais ntawv cov cim thuam).

Hauv hom kev sib tw, cov cim uas sawv cev los ntawm octal thiab hexadecimal kev khiav qhov sib lawv liag yog kho cov lus siv thaum uas siv cov kev txwv tsis tu ncua. Yog li, / a \ 52b \ / sib npaug / \ / b \ / .

Qauv thiab Kev Ua

AWK yog ib hom lus qhia. Cov qauv ua ntej, thiab ces qhov kev txiav txim. Cov lus hais ua haujlwm tau muab xa tuaj rau hauv { thiab } . Xws li tus qauv yuav ploj, los yog qhov kev txiav txim yuav ploj, tab sis, tau kawg, tsis yog ob qho tib si. Yog tias tus qauv tsis pom muaj, qhov kev txiav txim ua tiav rau txhua daim ntawv teev cov tswv yim. Kev ua haujlwm tsis zoo yog qhov sib npaug

{sau}

uas luam tawm tag nrho cov ntaub ntawv.

Cov lus pib nrog tus '# #' 'cim, thiab mus txog rau thaum kawg ntawm txoj kab. Tej kab lus dawb yuav siv los cais cov lus hais. Feem ntau, nqe lus xaus nrog tus newline, txawm li cas los, qhov no tsis yog qhov teeb meem rau cov kab xaus rau hauv ib lub teb, ',' ,,, ? , : ,, && , los yog || . Kab hauv txoj hauv kev ua los yog lwm tus neeg kuj muaj lawv cov lus tseem cia li txuas ntxiv rau kab hauv qab no. Lwm cov xwm txheej, yuav muaj ib txoj kab txuas mus ntxiv los ntawm qhov xaus nrog ib qho, qhov twg hauv qhov tshiab yuav raug tsis lees paub.

Ntau nqe lus yuav muab tso rau ntawm ib kab los ntawm kev cais lawv nrog lub '`;' '. Qhov no siv rau ob nqe lus hauv ib ntu ntawm qhov kev txiav txim ntawm ob tug qauv (ib txwm rooj sib hais), thiab rau cov qauv lus qhia tus kheej.

Qauv

AWK cov qauv yuav yog ib qho ntawm cov hauv qab no:

BEGIN END / tus qhia / tus qauv qhia / piav qhia txawv & & qauv txawv || txawv txawv ? qauv : qauv ( qauv ) ! txawv pattern1 , pattern2

BEGIN thiab END yog ob hom qauv tshwj xeeb uas tsis tuaj yeem kuaj cov lus tawm. Qhov txiav txim ntawm tag nrho cov qauv BEGIN yog sib koom ua ke yog tias tag nrho cov lus tau sau rau hauv ib qho BEGIN block. Lawv raug tua ua ntej cov ntsiab lus nyeem tau nyeem. Ib yam li ntawd, tag nrho cov kev txwv END yog sib koom ua ke, thiab raug tua thaum tag nrho cov tawm lus siv sab nraud pov tseg (los yog thaum twg tawm qhov sau tawm). BEGIN thiab END cov qauv tsis tuaj yeem koom nrog lwm cov qauv hauv cov kab lus qauv. BEGIN thiab END cov qauv tsis tuaj yeem cuam tshuam tsis tau.

Rau / tsis tu ncua kev piav qhia / cov qauv, cov nqe lus sib txuas lus yog ua tiav rau txhua daim ntawv teev tswv yim uas muaj feem xyuam nrog kev qhia tawm. Cov kab lus li niaj zaus yog tib yam li cov uas nyob hauv egrep (1), thiab tau ua raws li hauv qab no.

Cov lus piav qhia yuav siv cov tswv lag luam hauv qab no hauv nqe lus hais txog kev ua. Cov kev ntsuam xyuas no feem ntau yog tias qee qhov kev ua si sib txawv rau cov kab zauv.

Tus & & , || , thiab ! cov tswv lag luam yog cov tswv yim THIAB, cov tswv yim LOSSIS, thiab cov zajlus raws li, raws li hauv C. Lawv ua qhov kev ntsuas luv luv, xws li hauv C, thiab yog siv los ua cov qauv txheej txheem txheej thaum ub. Xws li feem ntau ntawm cov lus, yuav tsum siv tus quas los hloov qhov kev ntsuam xyuas.

Qhov ?: Tus neeg teb xov tooj yog zoo li tus tib neeg khiav lag luam hauv C. Yog tias tus thawj qauv yog qhov tseeb ces tus qauv siv rau kev kuaj yog tus qauv thib ob, txwv tsis pub nws yog tus thib peb. Tsuas yog ib qho ntawm cov qauv thib ob thiab thib peb yog ntsuam xyuas.

Tus qauv [pattern1] , daim ntawv [pattern2] ntawm qhov kev qhia yog hu ua tus qauv ntau . Nws ntais tag nrho cov ntaub ntawv tawm tswv yim pib nrog cov ntaub ntawv uas muaj qhov sib txawv pattern1 , thiab txuas ntxiv mus txog cov ntaub ntawv uas muaj qhov sib txawv pattern2 , suav nrog. Nws tsis ua ke nrog lwm yam kev qhia txawv.

Cuam Tshuam Nrawm

Cov kab lus tsis tu ncua yog cov kev pom zoo nyob hauv egrep . Lawv muaj cov cim raws li nram no:

c

ntais cov kabmob uas tsis yog-metacharacter c .

\ c

ntais ntawv tus cwj pwm c .

.

ntais ntawv cov cim nrog rau cov ntawv tshiab.

^

ntais ntawv pib ntawm txoj hlua.

$

sib dhos ntawm txoj hlua kawg.

[ ABC ... ]

daim ntawv teev npe, ntais ntawv ntawm cov cim abc ....

[^ ABC ... ]

negated cim npe, ntais ntawv txhua tus cim tsuas yog abc ....

r1 | r2

kev hloov: sib tw r1 los yog r2 .

r1r2

concatenation: ntais ntawv r1 , thiab ces r2 .

r +

ntais ntawv ib lossis ntau dua r 's.

r *

ntais ntawv xoom lossis ntau dua r .

r ?

ntais ntawv xoom lossis ib r qhov.

( r )

grouping: ntais ntawv r .

r { n }

r { n ,}

r { n , m } Ib los yog ob tus lej hauv cov tes taw qhia ua ib qho kev qhia ntawm kev sib lawv . Yog tias muaj ib tug naj npawb hauv kev zawm hniav, cov lus qhia ua ntej r yog rov ua dua n . Yog tias muaj ob tug naj npawb sib cais los ntawm ib qho voj voog, r yog rov ua dua n mus m . Yog hais tias muaj ib tug xov tooj tom qab ib qho kev ua tiav, ces rov qab dua n zaug.

Tsuas cov kab lus tsuas yog muaj nyob rau hauv yog - xws li los yog --re-interval raug teev nyob rau ntawm cov kab hais kom ua.

Teb zoo!

ntais cov hlua npliag ntawm qhov pib los yog qhov kawg ntawm ib lo lus.

B

ntais cov hlua khoob hauv ib lo lus.

<

ntais cov hlua npliag thaum pib ntawm ib lo lus.

>

ntais cov hlua khoob tom kawg ntawm ib lo lus.

\ w

ntais ntawv cov lus-tus neeg twg (cov ntawv, tus zauv, lossis cov cim hauv qab).

W

zoo li cov cim uas tsis yog lo lus-constituent.

Teb zoo!

ntais cov hlua npliag thaum pib ntawm lub pob (hlua).

Yawg

ntais cov hlua khoob tom kawg ntawm qhov tsis tuaj yeem.

Cov cwj pwm khiav tawm uas siv tau hauv txoj hlua constants (saib hauv qab) kuj siv tau hauv cov kab zauv.

Cov chav kawm ntawv yog ib qho tshiab uas tau pib hauv POSIX tus qauv. Ib tus cwj pwm cim yog ib qho cim tshwj xeeb los piav cov npe ntawm cov cim uas muaj tus cwj pwm tshwj xeeb, tiam sis qhov twg lub cim ntawm lawv tus kheej yuav txawv ntawm lub teb chaws thiab / los yog cov cwj pwm teem rau cim teeb. Piv txwv li, qhov kev xav ntawm qhov yog ib lub cim uas yog alphabetic txawv hauv Tebchaws Meskas thiab hauv Fabkis.

Ib tus cwj pwm hauv chav kawm tsuas siv tau rau hauv ib qho kev qhia hauv cov lus hauv daim ntawv teev npe. Cov chav kawm ntawm cov tsiaj ntawv muaj xws li [: , lo lus tseem ceeb qhia txog hoob kawm, thiab :] . Cov cim qhia ua cim los ntawm POSIX tus qauv yog:

[: alnum:]

Alphanumeric cim.

[: alpha:]

Cov yeeb yaj duab.

[: dawb paug:]

Qhov chaw los yog tab cim.

[: cntrl:]

Tswj cov cim.

[: digit:]

Numeric cim.

[: duab:]

Cim cov ntawv luam tawm thiab pom. (Ib qhov chaw sau, tab sis tsis pom, thaum lub caij muaj ob qho.)

[: txo:]

Txaus siab dua alphabetic cim.

[: sau:]

Sau cov cim (cim uas tsis tswj cov cim.)

[: punct:]

Cov cim cim (cim tsis yog ntawv, khij nab npawb, tswj cov cim, lossis chaw cim).

[: qhov chaw:]

Cov cim chaw (xws li chaw, tab, thiab ua qauv npe, sau npe rau ob peb).

[: sab saud:]

Alphabetic alphabetic cim.

[: xdigit:]

Cim cov ntawv uas yog hexadecimal.

Piv txwv, ua ntej POSIX txuj ci, kom ua kom haum cov cim tsis sib xws, koj yuav tsum sau / [A-Za-z0-9] / . Yog hais tias koj lub teeb lub cim tau lwm cov ntawv cim hauv nws, qhov no yuav tsis phim lawv, thiab yog tias koj tus cim tau sib txawv ntawm ASCII, qhov no yuav tsis txawm phim lub ASCII alphanumeric cim. Nrog cov POSIX cim qhia, koj tuaj yeem sau / [[: alnum:]] / , thiab qhov no ntais ntawv cov cim alphabetic thiab numeric hauv koj lub cim.

Ob qho yeeb yam tshwj xeeb ntxiv tuaj yeem tshwm sim hauv cov cim npe. Cov no siv rau non-ASCII cov cim poob qab, uas yuav muaj ib lub cim (hu ua collating ntsiab ) uas muaj ntau dua ib tus cim, nrog rau ntau lub cim uas muaj sib npaug rau kev sib sau , los yog kev faib tawm. (Piv txwv, nyob rau Fabkis, lub tiaj tus '' e '' thiab lub ntxa-accented e 'yog sib npaug.)

Collating Symbols

Ib qho cim uas yog collating yog ib qho cim uas muaj cov ntsiab lus collating hauv [. thiab .] . Piv txwv, yog ch yog lub caij sib sau ua ke, ces [[.ch.] Yog ib qho kev qhia uas muaj qhov sib npaug ntawm cov khoom no, thaum [ch] yog ib qho kev qhia uas haum raws li c los sis h .

Cov Ntawv Kawm Sib Npaug

Ib qho sib txawv hauv chav kawm yog lub npe ntawm ib lub npe ntawm cov npe uas sib npaug. Lub npe yog xa nrog [= and =] . Piv txwv li, lub npe e yuav raug siv los sawv cev rau txhua yam ntawm "` e, '' `` e ',' 'thiab' e`. '' Hauv qhov no, [[= e =]] yog ib qho kev qhia ntais ntawv ntawm e , e ' , lossis e` .

Cov nta no zoo heev rau cov tsis paub lus Askiv. Lub tsev qiv ntawv muaj kev sib tw siv los ua cov lus qhia tam sim no tsuas pom txog POSIX tus cwj pwm cim; lawv tsis paub txog cov cim los sis cov ntawv kawm sib npaug.

Cov y , \ B , \,, \,, w , \ W , \ , \ thiab cov lag luam yog rau gawk ; lawv yog qhov kev txuas txuas ntxiv raws li cov chaw hauv cov chav qiv ntawv nyeem GNU.

Cov kab ntau yam hais txog kev xaiv kom tswj hwm qhov kev nkag siab ntawm gawk txhais cov cim hauv cov kab lus qhia tawm.

Tsis muaj kev xaiv

Nyob rau hauv cov ntaub ntawv default, gawk muab tag nrho cov chaw ntawm POSIX kab zauv uas niaj hnub thiab cov GGUU qhia cov neeg ua haujlwm tau piav saum toj no. Txawm li cas los xij, cov kab lus caij nyoog tsis muaj kev txhawb nqa.

- kawg

Tsuas yog cov lus qhia POSIX qhia tawm xwb, GNU cov neeg tsav tsheb tsis zoo. (Piv txwv li, \ u yeej zoo li ib tus qauv w ). Cov kab lus ncaj ncees raug tso cai.

--ntxhais

Traditional Unix awk txwm kab zauv yog sib npaug. Cov neeg tsav tsheb GNU tsis yog tshwj xeeb, cov kab lus caij nyoog tsis muaj, thiab tsis yog cov hoob POSIX cov cim ( [[: alnum:]] thiab ntxiv rau). Cov cwj pwm uas tau piav los ntawm octal thiab hexadecimal khiav sequences yog kho txhais, txawm tias lawv sawv cev qhia metacharacters.

- nti-luv

Tso cov kab lus tawm hauv cov kab lus qhia tawm, txawm hais tias - tau muab qhov kev hloov.

Kev ua

Cov lus hais ua haujlwm tau muab xa nrog cov zauv, { thiab } . Cov lus hais ua haujlwm muaj xws li kev ua haujlwm li ib txwm, cov cai, thiab cov lus hais uas muaj nyob rau ntau hom lus. Cov tswv, tswj cov lus qhia, thiab cov nqe lus tawm / cov lus hais tawm muaj cov qauv tom qab cov neeg hauv C.

Cov neeg tsav tsheb

Cov neeg tsav tsheb hauv AWK, hauv kev txiav txim siab txo nqis, yog

( ... )

Grouping

$

Teb cov lus nug.

++ -

Kev txhim kho thiab kev txiav txim, ob qho tib si pib thiab tom qab.

^

Kev pom zoo ( ** kuj tseem siv tau, thiab ** = rau tus neeg khiav dej num rau kev txib).

+ -!

Unary ntxiv rau, unary rho tawm, thiab cov zajlus kom tsis txaus siab.

* /%

Kev sib txuam, faib, thiab modulus.

+ -

Ntxiv thiab rho tawm.

chaw

Txoj hlua khi.

<>

<=> =

! = == Cov neeg khiav dej num sib xws li niaj zaus.

~ ~ ~

Tawm zuj zus, tsis tuaj yeem ua haujlwm. LUS CEEB TOOM: Tsis txhob siv cov lus qhia tsis tu ncua ( / foo / ) ntawm sab laug ntawm ib ~ los yog ! Tsuas siv ib sab ntawm sab xis. Cov lus qhia / foo / ~ exp muaj cov ntsiab lus tib yam li (($ 0 ~ / foo /) ~ exp ) . Qhov no feem ntau tsis yog qhov uas tau npaj.

hauv

Array kev ua tswv cuab.

&&

Yamntxwv THIAB.

||

SIV LOSSIS.

?:

Qhov C sau qhia. Qhov no muaj daim ntawv expr1 ? expr2 : expr3 . Yog tias expr1 muaj tseeb, tus nqi ntawm qhov qhia yog expr2 , txwv tsis pub nws yog expr3 . Tsuas yog ib qho ntawm expr2 thiab expr3 yog ntsuas.

= + = - =

* = / =% = ^ = Kev taw qhia. Ob qho kev ua tiav ( var = tus nqi ) thiab tus neeg teb xov tooj-assignment (lwm cov ntaub ntawv) yog txhawb.

Tsab Ntawv Tswj Cov Cai

Cov nqe lus tswj kev tiv thaiv yog raws li nram no:

Yog hais tias [ condition statement ] thaum [ condition statement ] thaum sau ( mob ) nqe lus thaum lub sijhawm ( condition ) rau ( expr1 ; expr3 ; expr3 ) statement rau ( var hauv array ) nqe lus }

Daim Ntawv I / O

Lus tawm / tawm lus sau tawm yog raws li nram no:

kaw ( ntaub ntawv [ , ua li cas ] )

Kaw cov ntaub ntawv, yeeb nkab lossis txheej txheem. Qhov yeem raws li yuav tsum tau siv tsuas yog siv thaum xaus ib kawg ntawm cov hlua ob txoj hauv kev sib koom tes. Nws yuav tsum yog ib txoj hlua, xws li "rau" lossis "los ntawm" .

getline

Teem $ 0 los ntawm cov ntaub ntawv tawm tswv yim tom ntej; teeb tsa NF , NR , FNR .

getline < file

Teem $ 0 los ntawm cov ntaub ntawv tom ntej ntawm cov ntaub ntawv ; teeb tsa NF .

getline var

Teem caij var los ntawm cov ntaub ntawv tawm tswv yim tom ntej; teeb NR , FNR .

getline var < file

Teem caij ntawm cov ntaub ntawv tom ntej ntawm cov ntaub ntawv .

hais kom ua | getline [ bar ]

Khiav hais kom ua lub raj xa mus rau $ 0 lossis var , raws li saum toj no.

hais kom ua | & getline [ bar ]

Khiav kev hais ua ib qho kev sib dhos ua tus xa tawm rau $ 0 lossis var , raws li saum toj no. Cov txheej txheem sib xyaw ua ke yog kev ncua sij hawm ntxiv.

tom ntej

Txhob ua cov ntaub ntawv tawm tam sim no. Cov ntaub ntawv tawm tswv yim tom ntej no tau nyeem thiab ua tiav nrog thawj tus qauv hauv qhov kev pabcuam AWK. Yog hais tias qhov kawg ntawm cov ntaub ntawv cov ntaub ntawv raug mus txog, END block (s), yog tias muaj, raug tua.

nextfile

Txhob ua cov ntaub ntawv tam sim no. Cov ntaub ntawv tawm tswv yim tom ntej no tau los ntawm cov ntaub ntawv tawm tswv yim tom ntej. FILENAME thiab ARGIND yog muab kho dua tshiab, FNR pib dua 1, thiab kev ua haujlwm pib nrog thawj qauv ntawm qhov kev pabcuam AWK. Yog hais tias qhov kawg ntawm cov ntaub ntawv cov ntaub ntawv raug mus txog, END block (s), yog tias muaj, raug tua.

sau

Sau cov ntaub ntawv tam sim no. Cov ntaub ntawv tso zis tseg nrog cov nqi ntawm qhov txawv ntawm ORS .

sau cov ntawv teev npe

Prints kab zauv. Txhua qhov kev qhia yog sib cais los ntawm tus nqi ntawm OFS sib txawv. Cov ntaub ntawv tso zis yog xaus nrog tus nqi ntawm qhov txawv ntawm ORS .

sau expr-daim ntawv > cov ntaub ntawv

Prints kab zauv rau hauv cov ntaub ntawv . Txhua qhov kev qhia yog sib cais los ntawm tus nqi ntawm OFS sib txawv. Cov ntaub ntawv tso zis yog xaus nrog tus nqi ntawm qhov txawv ntawm ORS .

printf fmt, expr-sau

Hom ntawv thiab luam.

printf fmt, expr-sau > cov ntaub ntawv

Hom ntawv thiab sau rau hauv cov ntaub ntawv .

system ( cmd-kab )

Ua raws li qhov hais kom ua cmd-kab , thiab xa tawm qhov xwm txheej. (Qhov no tej zaum yuav tsis muaj nyob hauv cov tshuab tsis yog POSIX.)

fflush ( [ file ] )

Tso cov ntawv ntim uas muaj txuam nrog cov zis qhib cov ntaub ntawv lossis cov yeeb nkab ntawv . Yog hais tias cov ntaub ntawv uas ploj lawm, mam li tso zis tso zis. Yog hais tias cov ntaub ntawv yog cov nyhuv null, ces tag nrho cov zis qhib cov ntaub ntawv thiab cov kav dej muaj cov ntim cov yaug.

Cov twj tso tawm ntxiv ntxiv raug tso cai rau luam tawm thiab luam tawm .

sau ... >> cov ntaub ntawv

appends tso zis rau cov ntaub ntawv .

sau ... hais kom ua

sau rau ntawm lub yeeb nkab.

sau ... | & hais kom ua

xa cov ntaub ntawv rau kev sib koom tes.

Cov lus txib commandline rov qab 0 rau thaum xaus ntawm cov ntaub ntawv thiab -1 ntawm kev yuam kev. Thaum ua yuam kev, ERRNO muaj ib txoj hlua piav txog qhov teeb meem.

LUS CEEB TOOM: Yog tias siv lub yeeb nkab lossis kev sib koom ua kom tau txais, los yog los ntawm cov ntawv luam los yog sau hauv ib lub voj voog, koj yuav tsum siv qhov ze () los tsim cov qauv tshiab ntawm qhov kev hais kom ua. AWK tsis cia cov kav dej lossis co-txheej txheem thaum lawv xa EOF.

Daim ntawv sau tawm

Cov AWK versions ntawm tsab ntawv xovxwm thiab kev txav duab sprintf () hauv qab (saib hauv qab) txais cov qauv hauv qab no:

% c

ASCII tus cwj pwm. Yog hais tias qhov kev sib cav siv rau % c yog numeric, nws yog kho ua cim thiab luam tawm. Txwv tsis pub, qhov sib cav yog xav tias yuav yog ib txoj hlua, thiab tsuas yog thawj tus cwj pwm ntawm qhov hlua sau.

% d , % i

Tus zauv cim (zauv feem).

% e,% E

Ib tug floating tus naj npawb ntawm daim ntawv [-] d.dddddde [+ -] dd . Siv E% E siv E siv e .

% f

Ib tug nab npawb taw tes ntawm daim ntawv [-] ddd.dddddd .

% g,% G

Siv % e lossis % t conversion, qhov twg yog luv dua, nrog nonsignificant zeros suppressed. Tus % G hom siv % E siv % e .

% o

Ib tus lej cim uas tsis tau teev tseg (tseem yog ib qho integer).

% u Ib tug zauv cim uas tsis tau tso cai (dua, tus lej).

% s

Ib tug cwj pwm hlua.

% x,% X

Ib tug xov tooj uas tsis tau teev npe (ib qho integer). % X hom ntawv siv ABCDEF siv abcdef .

%%

Ib tus lej %%; tsis muaj kev sib cav yog hloov dua siab tshiab.

Yeem, tsis muaj ntxiv tej zaum yuav dag ntawm % thiab tsab ntawv tswj:

suav $

Siv lub suab sib cav ntawm qhov point no hauv cov formatting. Qhov no hu ua cov lus qhia tshwj xeeb thiab txhais tau hais tias siv rau cov txhais cov lus hauv cov ntawv strings, tsis yog nyob rau ntawm cov ntawv nyeem ntawm AWK. Nws yog lub sij hawm ncua ntxiv.

-

Cov lus qhia yuav tsum yog sab laug-ncajncees hauv nws daim teb.

chaw

Rau cov pauv kev nruam zauv, prefix zoo qhov tseem ceeb nrog ib qhov chaw, thiab qhov tsis pom qhov tseem ceeb nrog kev kos npe.

+

Ntxiv rau qhov kos npe, siv ua ntej qhov dav hloov kho (saib hauv qab), hais kom ib txwm muab ib qho cim rau cov kev sib piv ntawm cov naj npawb, txawm tias cov ntaub ntawv los ua kom zoo. Tus + overrides qhov chaw hloov kho.

#

Siv ib daim ntawv 'alternate' rau qee cov ntawv tswj kav. Rau % o , muab ib qho kev xoom. Rau % x , thiab % X , muab tus 0 x lossis 0 x rau ib qho nonzero. Rau % e , % E , thiab % f , qhov no yeej ib txwm muaj taw tes. Rau % g , thiab % G , trailing zeros tsis tawm ntawm qhov tshwm sim.

0

Ib txoj hau kev 0 (zero) ua raws li tus chij, uas qhia zis yuav tsum tau padded nrog zeroes tsis muaj chaw. Qhov no siv tau rau cov qauv tawm tswv yim uas tsis yog zauv. Cov cim chij no tsuas muaj kev cuam tshuam thaum dav dav dav dav dua tus nqi yuav tsum luam tawm.

dav

Lub teb yuav tsum tau padded rau qhov dav. Lub teb nquag padded nrog chaw. Yog hais tias siv tus chij 0 , nws yog padded nrog zeroes.

. prec

Ib tug lej uas qhia txog qhov kev txiav txim siab thaum siv luam ntawv. Rau cov % e , % E , thiab % f formats, qhov no qhia cov zauv uas koj xav tau luam tawm mus rau sab xis ntawm cov zauv. Rau % g , thiab % G hom ntawv, nws qhia ntau tshaj qhov tseem ceeb ntawm cov nab npawb. Rau % d , % o , % i , % u , % x , thiab % X hom ntawv, nws qhia tsawg kawg ntawm tus lej luam tawm. Rau % s , nws qhia ntau tshaj cov cim ntawm cov hlua uas yuav tsum tau luam tawm.

Qhov dav qhov dav thiab qhov muaj peev xwm ntawm lub ANSI C printf () kev ua haujlwm yog kev txhawb nqa. A * nyob rau qhov chaw ntawm qhov dav lossis qhov kev ua tiav ntawm qhov ua rau lawv qhov tseem ceeb yuav tsum tau tawm ntawm cov lus sib cav rau printf lossis sprintf () . Siv cov lus qhia tshwj xeeb uas muaj qhov dav dav los yog qhov tseeb, muab cov suav $ tom qab lub * cov hom ntawv txoj hlua. Piv txwv, "% 3 $ * 2 $. * 1 $ s" .

Cov Ntaub Ntawv Tshwj Xeeb

Thaum ua I / O redirection ntawm luam los yog printf rau hauv ib daim ntawv, los yog ntawm getline los ntawm cov ntaub ntawv, gawk pom muaj qee qhov tshwj xeeb filenames hauv tsev. Cov filenames pub nkag mus qhib cov lus piav qhia uas tau muab los ntawm gawk niam txiv txoj kev ua (feem ntau yog lub plhaub). Cov npe ntawm cov ntaub ntawv kuj tseem siv tau rau ntawm kab lus hais kom paub cov ntaub ntawv cov ntaub ntawv. Cov filenames yog:

/ dev / stdin

Cov txheej txheem txheem.

/ dev / stdout

Tus txheem tso tawm.

/ dev / stderr

Tus txheem yuam kev.

/ dev / fd / n

Cov ntaub ntawv txuam nrog cov ntaub ntawv qhib piav qhia n .

Cov no yog qhov tseem ceeb rau kev yuam kev. Piv txwv li:

sau "Koj xom nws!" > "/ dev / stderr"

whereas koj yuav txwv tsis pub siv

sau "Koj xom nws!" | "miv 1> & 2"

Cov ntaub ntawv tshwj xeeb hauv qab no yuav siv nrog | & co-process tus neeg teb xov tooj los tsim kev sib txuas TCP / IP network.

/ inet / tcp / lport / rhost / rport

Ua ntaub ntawv rau TCP / IP kev txuas ntawm qhov chaw nres nkoj hauv zos chaw nres nkoj mus rau cov chaw taws teeb sab nraud rhos ntawm chaw nres nkoj tej thaj chaw deb. Siv qhov chaw nres nkoj ntawm 0 kom lawv xaiv lub chaw nres nkoj.

/ inet / udp / lport / rhost / rport

Zoo li, tab sis siv UDP / IP tsis yog TCP / IP.

/ inet / nyoos / lport / rhost / rport

Yug rau kev siv yav tom ntej.

Lwm cov ntaub ntawv tshwj xeeb muab tau cov lus qhia txog kev sib tw khiav. Cov filenames no tam sim no tsis tas li. Siv cov PROCINFO array kom tau cov ntaub ntawv uas lawv muab. Cov filenames yog:

/ dev / pid

Nyeem cov ntaub ntawv no rov qab tus txheej txheem ID ntawm tus txheej txheem tam sim no, nyob rau hauv decimal, txiav nrog ib tug newline.

/ dev / ppid

Nyeem cov ntaub ntawv no rov qab los ntawm niam txiv tus txheej txheem ntawm tus txheej txheem tam sim no, nyob rau hauv decimal, txiav nrog ib tug newline.

/ dev / pgrpid

Nyeem cov ntaub ntawv no rov cov txheej txheem pabcuam ID ntawm cov txheej txheem tam sim no, nyob rau hauv decimal, txiav nrog ib tus newline.

/ dev / neeg siv

Nyeem cov ntaub ntawv no rov qab ib daim ntawv teev tseg nrog ib qho newline. Lub teb yog sib cais nrog cov chaw. $ 1 yog tus nqi ntawm qhov kev hu rau getuid (2), $ 2 yog qhov nqi ntawm qhov kev hu rau geteuid (2), $ 3 yog tus nqi ntawm qhov hu ua getgid (2), thiab $ 4 yog qhov value of getegid (2) kaw lus. Yog tias muaj lwm cov teb ntxiv, lawv yog cov pabcuam ID rov qab los ntawm cov pawg neeg tau txais (2). Ntau pab pawg yuav tsis raug txhawb los ntawm txhua lub tshuab.

Numeric Functions

AWK muaj cov nram qab no built-in xam zauv:

atan2 ( y , x )

Rov qab rau lub arctangent ntawm y / x hauv radians.

cos ( expr )

Rov qab rau cosine ntawm expr , uas yog nyob rau hauv radians.

exp ( expr )

Lub exponential muaj nuj nqi.

int ( expr )

Truncates rau integer.

cav ( expr )

Lub cev muaj logarithm.

rand ()

Rov qab ib qho naj npawb ntawm 0 thiab 1.

kev txhaum ( expr )

Rov qab sine ntawm expr , uas yog nyob rau hauv radians.

sqrt ( expr )

Lub hauv paus square ua haujlwm.

srand ( [ expr ] )

Siv expr li cov noob tshiab rau random tooj generator. Yog tias tsis muaj kev sib tw, muab lub sijhawm rau hnub ntawd. Tus nqi xa rov qab yog cov noob dhau los rau random tooj generator.

Txoj hlua khi

Gawk muaj cov nram qab no built-in txoj hlua:

asort ( s [ , d ] )

Rov qab cov naj npawb ntawm cov khoom nyob rau hauv qhov chaw array s . Tus txheem ntawm s yog sorted siv gawk 's ib txwm cai rau kev sib piv qhov tseem ceeb, thiab cov indexes ntawm qhov tseem ceeb sorted ntawm s yog hloov nrog cov zauv zauv pib nrog 1. Yog hais tias tus xaiv array destination d yog teev, ces s yog thawj duplicated rau d , thiab ces d yog sorted, tawm hauv indexes ntawm qhov array s unchanged.

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

Nrhiav lub hom phiaj txoj hlua rau kev sib tw ntawm qhov kev qhia tawm r . Yog h yog ib txoj hlua pib g los G , ces hloov tag nrho cov ntais ntawv r nrog s . Txwv tsis pub, h yog tus lej uas qhia txog qhov kev sib tw ntawm r los hloov. Yog tias t yog tsis muab, $ 0 siv xwb. Nyob rau hauv daim ntawv hloov s s , cov sib lawv liag, qhov twg n yog tus naj npawb ntawm 1 mus rau 9, yuav muab siv los qhia cov ntawv nyeem uas sib npaug ntawm qhov kev sib quas qis. Cov sib lawv liag \ / 0 yog qhov sib npaug ntawm cov lus sib dhos, raws li tus ua cim & . Tsis zoo li sub () thiab gsub () , txoj hlua hloov txoj kev xa rov qab yog qhov tshwm sim ntawm qhov kev ua haujlwm, thiab cov hlua tseem yuav tsis hloov.

gsub ( r , s [ , t ] )

Rau txhua lub substring txuam cov kev qhia r rau hauv txoj hlua t , hloov cov hlua s , thiab xa cov naj npawb ntawm cov kev hloov. Yog t yog tsis muab, siv $ 0 . Ib qho & hauv daim ntawv hloov tshiab yog hloov nrog cov ntawv nyeem uas ua tau zoo sib xws. Siv \ & kom tau ib tus ntawv & . (Qhov no yuav tsum raug ntaus ua "\\ &" ; saib GAWK: Siv tau AWK Programming rau kev sib tham ntawm cov cai tswj & & thiab backslashes hauv cov ntawv hloov ntawm sub () , gsub () , thiab gensub () .)

Performance index ( s , t )

Rov qab rau qhov kev ntsuas ntawm txoj hlua t ntawm txoj hlua, los yog 0 yog t tsis tuaj. (Qhov no implies tias cim indices pib ntawm ib qho.)

ntev ( [ s ] )

Rov qab qhov ntev ntawm cov hlua s , los yog qhov ntev ntawm $ 0 yog tias s tsis muab.

match ( s , r [ , a ] )

Rov qab rau txoj haujlwm hauv qhov chaw uas qhov kev qhia r tshwm sim, lossis 0 yog tias r tsis tuaj, thiab teev tus nqi ntawm RSTART thiab RLENGTH . Nco ntsoov tias qhov kev txiav txim siab sib cav yog tib yam li rau tus neeg teb xov tooj: Yog tias array a muab, ib tug yog muab tshem tawm thiab ces cov ntsiab lus 1 mus txog n tau ntim nrog cov feem ntawm s uas sib npaug sib npaug ntawm kev sib npaug hauv kev sib npaug hauv r . Lub 0'th keeb ntawm ib tug muaj feem ntawm s s matched los ntawm tag nrho cov kev qhia r .

cais ( s , a [ , r ] )

Splits s hlua s rau hauv cov array ib ntawm cov kev qhia r , thiab rov ua dua lub teb. Yog hais tias r rho tawm, FS siv dua. Tus array ib yog cleared ua ntej. Splitting behaves identical rau kev cais splitting, piav saum toj no.

sprintf ( fmt , expr-sau )

Prints expr-list raws fmt , thiab rov cov hlua uas tshwm sim.

strtonum ( str )

Tshawb xyuas str , thiab rov qab ntaus nws cov nuj nqis. Yog tias str pib nrog ib tug ua 0 , strtonum () assumes ntawd str yog octal naj npawb. Yog tias str pib nrog ib tug ua 0x lossis 0X , strtonum () assumes str yog ib tug zauv hexadecimal.

sub ( r , s [ , t ] )

Ib yam li gsub () , tiam sis tsuas yog thawj qhov sib txuam substring hloov.

substr ( s , kuv [ , n ] )

Rov qab los rau feem ntau ntawm n -nyaub qab substring ntawm s pib ntawm i . Yog n yog rho tawm, tus so ntawm s siv.

tolower ( str )

Rov qab muab ib daim qauv ntawm cov hlua str , nrog rau tag nrho cov sab saud hauv cov lus txhais los rau lawv cov neeg tsawg dua cov ntaub ntawv. Cov ntawv uas tsis yog alphabetic tab tom hloov tsis tau.

toupper ( str )

Rov xa ib daim qauv ntawm cov hlua str , nrog rau tag nrho cov tsiaj ntawv tsawg dua hauv cov lus txhais mus rau lawv cov tub ntxhais kawm ntawv. Cov ntawv uas tsis yog alphabetic tab tom hloov tsis tau.

Lub sijhawm ua haujlwm

Vim tias ib qho ntawm kev siv cov kev pabcuam AWK yog ua cov ntaub ntawv teev cov ntaub ntawv uas muaj cov ntaub ntawv qhia txog sijhawm, cov lus tso cai muab cov sijhawm hauv qab no kom tau txais nyiaj lub sijhawm thiab teebmeem.

mktime ( datepec )

Rurns datepec rau hauv lub sijhawm stamp ntawm tib daim ntawv xa rov qab los ntawm systime () . Lub sijhawm teem yog ib txoj hlua ntawm YYYY MM DD HH MM SS [DST] . Tus qauv ntawm txoj hlua muaj 6 los xya tus sawv cev rau cov xyoo tag nrho, suav txij lub 1 txog 12, lub hnub ntawm lub hli pib ntawm 1 mus rau 31, teev ntawm hnub ntawm 0 mus rau 23, feeb ntawm 0 rau 59, thiab lub thib ob ntawm 0 mus rau 60, thiab ib qho chaw yeem tshwj xeeb nruab hnub. Qhov tseem ceeb ntawm cov xov tooj yuav tsum tsis pub dhau lub sijhawm teev tseg; Piv txwv, ib teev ntawm -1 txhais tau tias yog 1 teev ua ntej ib tag hmo. Lub hnub nyoog-pes tsawg tus Gregorian daim ntawv qhia hnub ua ke, yog xyoo 0 ua ntej xyoo 1 thiab xyoo-xyoo ua ntej xyoo 0. Lub sij hawm raug suav tias yog nyob rau hauv lub sij hawm hauv zos. Yog hais tias lub hnub ci txav txav yog qhov zoo, lub sij hawm yog xav tias yuav yog lub caij nruab hnub nrig hnub; yog tias xoom, lub sij hawm xam pom tias yuav tsum tau ua lub sij hawm; thiab yog tias tsis zoo (lub neej ntawd), mktime () sim txiav txim seb hnub tom qab lub sij hawm txuag tau zoo rau lub sijhawm teev tseg. Yog tias cov timpec tsis muaj cov ntsiab lus txaus lossis yog hais tias lub sij hawm uas tshwm sim tsis muaj ntau, mktime () rov qab -1.

strftime ( [ hom [ , timestamp ]] )

Teeb moos timestamp raws li cov lus qhia hauv hom ntawv. Lub timestamp yuav tsum yog tib daim ntawv xa rov qab los ntawm systime () . Yog tias timestamp ploj lawm, lub sijhawm tam sim no siv. Yog hais tias hom ntawv tsis muaj, ib qho kev pheej yaus sib npaug rau cov hnub tso tawm (1) siv. Saib qhov kev qhia tshwj xeeb rau qhov strftime () ua haujlwm nyob rau hauv ANSI C rau hom sib piv uas tau lees paub. Ib tug pej xeem-sau version ntawm strftime (3) thiab ib tug txiv neej sab rau nws tuaj nrog gawk ; Yog hais tias qhov version tau siv los tsim cov khoom noj khoom haus, ces tag nrho cov kev hloov dua tshiab uas tau piav qhia nyob rau hauv tus txiv neej nplooj ntawv muaj rau gawk.

systime ()

Rov qab rau lub sij hawm tam sim no ntawm hnub uas yog cov vib thab nyub txij thaum lub sijhawm (1970-01-01 00:00:00 UTC ntawm POSIX systems).

Noog Manipulations Dej Num

Pib nrog version 3.1 ntawm gawk , cov nram qab no ntsis manipulation zog yog muaj. Lawv ua hauj lwm los ntawm kev hloov ob lub sij hawm ntau qhov cov ntsiab lus floating qhov tseem ceeb rau unsigned ntev cov zauv, ua haujlwm, thiab tom qab ntawd hloov cov txiaj ntsim rov qab rov qab mus rau floating point. Lub luag haujlwm yog:

thiab ( v1 , v2 )

Rov qab rau qhov kev sib npaug THIAB ntawm qhov tseem ceeb yog muab los ntawm v1 thiab v2 .

compl ( val )

Rov qab rau qhov kev txiav txim siab ntawm ntsis.

lshift ( val , suav )

Rov qab tus nqi ntawm qhov nqi, txav mus rau sab laug los ntawm cov khoom suav .

los sis ( v1 , v2 )

Rov qab mus rau lub vev vev los ntawm v1 thiab v2 .

rshift ( suav , suav )

Rov qab qhov value of val , txav ntawm txoj cai los ntawm suav cov khoom.

xor ( v1 , v2 )

Xa rov qab ntawm XOR ntawm qhov tseem ceeb yog muab los ntawm v1 thiab v2 .

Kev Sib Txawv Tebchaws

Pib ntawm version 3.1 ntawm gawk , cov haujlwm hauv qab no siv tau los ntawm koj qhov AWK program los txhais cov hlua ntawm cov sij hawm ua hauj lwm. Yog xav paub meej, saib GAWK: Siv AWK Programming .

bindtextdomain ( directory [ , domain ] )

Teev cov directory uas gawk saib rau cov ntaub ntawv .mo , thaum lawv tsis tuaj yeem muab tsis tau tso rau hauv qhov chaw 'standard' '(xws li, thaum xeem). Nws rov qab cov npe qhov twg yog qhov 'yog khi.' '

Lub neej ntawd yog qhov value of TEXTDOMAIN . Yog tus directory yog tus neeg thov nyiaj ( "" ), ces bindtextdomain () rov qab rau qhov kev tuav pov hwm tam sim no rau qhov sau npe .

dcgettext ( txoj hlua [ , domain [ , category ]] )

Rov qab rau tus txhais lus ntawm txoj hlua hauv ntawv sau rau thaj chaw hauv qeb . Cov nqi pheej yig rau qhov no yog tus nqi tam sim no ntawm TEXTDOMAIN . Cov nqi pheej yeem rau pawg yog "LC_MESSAGES" .

Yog tias koj muab tus nqi rau pawg , nws yuav tsum yog ib txoj hlua sib npaug zos rau ib qho ntawm cov chaw hauv cheeb tsam uas tau piav qhia hauv GAWK: Txiag AWK Programming . Koj yuav tsum tau muab ib daim ntawv sau rau hauv. Siv TEXTDOMAIN yog tias koj xav siv qhov ziag no.

dcngettext ( string1 , string2 , number [ , sau [ , category ]] ) Teb zoo!

Rov qab rau ntau tshaj ib daim ntawv siv rau tus xov tooj ntawm string1 thiab string2 hauv cov ntawv sau ua kab ntawv rau pawg qeb pawg . Cov nqi pheej yig rau qhov no yog tus nqi tam sim no ntawm TEXTDOMAIN . Cov nqi pheej yeem rau pawg yog "LC_MESSAGES" .

Yog tias koj muab tus nqi rau pawg , nws yuav tsum yog ib txoj hlua sib npaug zos rau ib qho ntawm cov chaw hauv cheeb tsam uas tau piav qhia hauv GAWK: Txiag AWK Programming . Koj yuav tsum tau muab ib daim ntawv sau rau hauv. Siv TEXTDOMAIN yog tias koj xav siv qhov ziag no.

COV LUS QHIA NTXIV

Cov dej num hauv AWK txhais tias yog li nram no:

muaj nuj nqi lub npe ( parameter sau ) { statements }

Cov dej num yog tseg thaum lawv raug hu los ntawm kab zauv rau hauv cov qauv lossis kev ua. Qhov tseeb tsis muab nkag rau hauv qhov kev ua hauj lwm hu ua siv los ua kom tiav cov cai tsis tshaj tawm hauv txoj haujlwm. Arrays yog kis tau los ntawm kev siv, lwm cov qhob ntawv yog kis los ntawm tus nqi.

Txij li cov kev khiav dej num tsis yog ib feem ntawm cov lus AWK, qhov kev hloov rau cov kev hloov hauv zos yog qhov tsis ncaj ncees: Lawv raug tshaj tawm hais tias tsis muaj ntxiv nyob rau hauv daim ntawv teev lus parameter. Lub rooj sib txoos yog cais cov kev hloov ntawm lub zos los ntawm kev ua tiag tiag los ntawm cov chaw seem hauv daim ntawv teev npe parameter. Piv txwv li:

muaj nuj nqi f (p, q, a, b) # a thiab b yog hauv zos {...} / abc / {...; f (1, 2); ...}

Cov niam txiv uas nyob hauv qhov kev ua hauj lwm hu ua yuav tsum tau ua raws li txoj hauj lwm npe tam sim ntawd, tsis muaj qhov chaw dawb. Qhov no yog kom tsis txhob muaj cov ntsiab lus tsis meej nrog cov neeg teb xov tooj concatenation. Qhov kev txwv no tsis siv rau cov teeb tsa kev ua nyob rau saum toj saud.

Kev ua haujlwm yuav hu tau rau ib leeg thiab tej zaum yuav rov ua dua. Muaj nuj nqi tsis siv raws li cov kev hloov hauv zos yog pib rau cov null txoj hlua thiab tus lej xoom raws li kev ua haujlwm.

Siv cov expr xa rov qab muaj nqis los ntawm kev ua haujlwm. Tus nqi rov qab yog undefined yog tias tsis muaj tus nqi yog muab, los yog qhov kev ua rov los ntawm lub 'ntog' 'kawg.

Yog tias - tau txais kev pabcuam, gawk ceebtoom txog kev hu xovtooj rau kev qis qis qis hauv lub sijhawm parse, tsis yog ntawm lub sijhawm khiav. Hu ib qho kev ua tsis muaj nuj nqi nyob hauv kev khiav haujlwm yog kev ua yuam kev tuag.

Lo lus func tej zaum yuav siv rau qhov chaw ua haujlwm .

DYNAMICALLY LOADING TSHIAB FUNCTIONS

Pib nrog version 3.1 ntawm gawk , koj muaj peev xwm ntxiv dynamically tshiab built-in kev khiav hauj lwm rau tus neeg txhais lus uas siv khiav ntawm gawk . Tag nrho cov ntsiab lus yog dhau ntawm qhov muaj ntawm daim ntawv qhia no; saib GAWK: Txuj ci AWK Programming kom paub meej.

extension ( kwv , kev ua haujlwm )

Dynamically txuas cov ntaub ntawv sib tw uas muaj npe ntawm qhov khoom , thiab ua haujlwm rau hauv qhov khoom, ua pib. Cov no yuav tsum ob qho tib si muab ua cov hlua. Rov qab ua tus nqi xa rov qab los ntawm kev ua haujlwm .

Qhov no muaj nuj nqi thiab muab sau cia hauv GAWK: Cov txiaj ntsig AWK Programming , tab sis txhua yam hais txog qhov no yuav hloov qhov kev tso tawm tom ntej. Peb xav tau kom koj tsis txhob siv cov lus qhia no rau txhua yam uas koj tsis txaus siab los ua.

SIGNALS

Pgawk lees txais ob qhov teeb meem. SIGUSR1 ua rau nws nti ib qhov profile thiab kev ua hauj lwm hu xov tooj rau cov ntaub ntawv profile, uas yog ib qho awkprof.out , los yog cov ntaub ntawv txawm muaj npe nrog qhov kev xaiv - kev xaiv. Nws mam li pib khiav. SIGHUP ua rau nws dump qhov profile thiab kev ua hauj lwm hu xov tooj thiab ces tawm.

PIV TXWV

Sau thiab xaiv cov npe nkag ntawm tag nrho cov neeg siv: BEGIN {FS = ":":} {luam $ 1 | " sau" FNR, $ 0} Concatenate thiab kab zauv (ib qho txawv ntawm ib lub ntsiab lus): {print NR, $ 0}

Internalization

Txoj hlua constants yog cov cwj pwm ntawm cov cim uas xa nrog ob chav quotes. Hauv cov cheeb tsam uas tsis yog neeg siv lus Askiv, nws muaj peev xwm kos tau cov hlua nyob rau hauv AWK qhov kev pab cuam raws li kev txhais lus rau hom lus natural. Cov hlua xws li ntaus cim hauv AWK cov kev pabcuam nrog tus thawj coj ntawm lub cev ('`_' '). Piv txwv,

gawk 'BEGIN {sau "nyob zoo, lub ntiaj teb"}'

ib txwm prints nyob zoo, ntiaj teb . Tab sis,

gawk 'BEGIN {sau ntawv _ "nyob zoo, lub ntiaj teb"}'

tej zaum yuav sau cov nyiaj bonjour, monde hauv Fabkis.

Muaj ob peb lub kauj ruam cuam tshuam rau kev ua thiab khiav cov kev pabcuam hauv zos AWK.

1.

Ntxiv ib qhov BEGIN ua haujlwm kom muab tus nqi sib txawv rau TEXTDOMAIN kuj sib txawv los tsim cov ntawv sau rau ib lub npe nrog koj qhov kev zov me nyuam.


CHAW UA HAUJ LWM {TEXTDOMAIN = "myprog"}

Qhov no pub rau gawk nrhiav cov ntaub ntawv .mo nrog rau koj qhov kev zov me nyuam. Yog tias tsis muaj kauj ruam no, gawk siv cov ntawv sau ua lus, uas tej zaum yuav tsis muaj cov lus rau koj qhov kev pab cuam.

2.

Cim tag nrho cov hlua uas yuav tsum tau muab txhais nrog ua lub cim underscores.

3.

Yog tias tsim nyog, siv dcgettext () thiab / lossis bindtextdomain () ua haujlwm hauv koj qhov kev zov me nyuam, raws li qhov tsim nyog.

4.

Khiav gawk --gen-po -f myprog.awk> myprog.po los tsim ib qho ntaub ntawv .po rau koj qhov kev zov me nyuam.

5.

Npaj kom muaj kev txhais lus, thiab txhim kho thiab txhim kho tus txheej txheem .ml .

Cov kev txhawb thoob ntiaj teb raug piav qhia nyob rau hauv tag nro nthuav dav hauv GAWK: Txiag AWK Programming .

Posix Compatibility

Ib lub hom phiaj rau kev gawk yog kev sib tw nrog POSIX tus qauv, zoo li nrog rau qhov tseeb version of UNIX awk . Txog rau thaum kawg, gawk sib txuas ntxiv rau cov neeg siv cov khoom nram qab no uas tsis tau piav nyob rau hauv phau AWK, tab sis yog ib qho ntawm Tswb Laboratories version of awk , thiab yog tus qauv POSIX.

Phau ntawv qhia tau hais tias qhov kev txiav txim kab kev sib txawv ntawm qhov kev ua haujlwm tshwm sim thaum awk yuav txwv tsis pub qhib qhov kev sib cav raws li cov ntaub ntawv, uas yog tom qab lub BEGIN block tseg. Txawm li cas los xij, ua ntej siv, thaum ib txoj haujlwm ntiag tug ua ntej cov ntaub ntawv muaj npe, txoj haujlwm yuav tshwm sim ua ntej lub BEGIN block khiav. Cov ntawv thov tuaj yeem nyob ntawm qhov no "feature." "Thaum awk raug hloov los piv rau nws cov ntaub ntawv, qhov -v xaiv kev muab cov tsiaj ntawv ua ntej kev pab cuam ntxiv rau kom haum cov ntawv thov uas tau ua raws li tus cwj pwm qub. (Qhov no feature tau pom zoo los ntawm ob qho tib si lub Bell Laboratories thiab cov GNU developers.)

-W xaiv qhov kev coj ua tshwj xeeb yog los ntawm tus txheej txheem POSIX.

Thaum sib cav sib ceg, gawk siv qhov kev xaiv tshwj xeeb '`-' 'kom teeb liab kawg ntawm kev sib ceg. Hauv hom kev sib tw, nws ceeb toom txog tab sis tsis pom zoo txog cov kev xaiv uas tsis muaj tseeb. Hauv kev khiav lag luam, cov lus sib tham no raug tso rau hauv txoj haujlwm AWK rau nws ua haujlwm.

Phau ntawv AWK tsis txhais tau qhov nqi tuaj ntawm srand () . Tus qauv POSIX nws tau xa nws cov noob uas nws tau siv, cia cia taug qab ntawm cov naj npawb ntawm cov zauv. Yog li ntawd srand () nyob rau hauv gawk kuj rov qab nws cov noob tam sim no.

Lwm nta tshiab yog: Siv ntau yam kev xaiv -f (ntawm MKS awk ); ENVIRON array; qhov \ , thiab \ v khiav tawm sequences (ua hauv Ameslikas hauv gawk thiab noj rov qab rau hauv Bell Bellatories version); qhov tolower () thiab toupper () built-in zog (ntawm Bell Bellatories version); thiab lub ANSI C conversion specifications nyob rau hauv printf (ua tiav thawj zaug hauv lub Bell Laboratories version).

Keeb kwm nta

Muaj ob ntu ntawm cov keeb kwm AWK kev siv uas yog kev txhawb nqa gawk . Ua ntej, nws tseem tau hu lub length () built-in ua haujlwm tsis tsuas yog tsis cav, tab sis txawm tsis muaj quas! Yog li,

a = ntev # Cov Algol dawb huv 60, Batman!

yog tib yam li neb ob tog

a = ntev ()
a = ntev ($ 0)

Cov cim no yog cim tias 'deprecated' 'hauv POSIX tus qauv, thiab gawk yuav ceeb toom txog kev siv yog tias --lint teev nyob rau ntawm kab hais kom ua.

Qhov lwm feature yog kev siv ntawm cov lus txuas ntxiv los yog cov lus txiav tawm sab nrauv lub cev ntawm ib ntus , rau , lossis ua lub voj. Traditional AWK cov kev siv tau kho zoo li kev siv li qhov sib npaug rau nqe lus tom ntej . Gawk txhawb cov kev pab no yog - qhov tseeb tau teev tseg.

GNU Extensions

Gawk muaj ntau qhov kev txuas mus rau POSIX awk . Lawv piav nyob rau hauv seem no. Tag nrho cov kev txuas ntxiv uas tau piav qhia ntawm no tuaj yeem raug neeg xiam oob qhab los ntawm kev yos hav zoov nrog kev xaiv - qhov kev xaiv.

Cov nram qab no nta ntawm gawk tsis muaj nyob rau hauv POSIX awk .

*

Tsis muaj kev tshawb nrhiav kev ua rau cov ntaub ntawv hu ua ntawm -f kev xaiv. Vim li no tus kabmob AWKPATH hloov tsis yog tshwj xeeb.

*

Cov kev khiav tawm x \ . (Kev tsis taus nrog --posix .)

*

Txoj kev ua haujlwm fflush () . (Kev tsis taus nrog --posix .)

*

Lub peev xwm los txuas ntxiv tom qab ? thiab :. (Kev tsis taus nrog --posix .)

*

Sab hnub nyoog thiab hexadecimal constants nyob rau hauv AWK cov kev pabcuam.

*

ARGIND , BINMODE , ERRNO , LINT , RT thiab TEXTDOMAIN zog tsis tshwj xeeb.

*

Qhov sib txawv ntawm IGNORECASE thiab nws cov teebmeem tsis muaj.

*

Tus FIELDWIDTHS kuj sib txawv thiab qhov dav dav dav cais.

*

Tus txheej txheem PROCINFO tsis muaj.

*

Kev siv RS ua ib qho kev qhia.

*

Cov npe tshwj xeeb muaj rau I / O redirection tsis raug lees paub.

*

| | & Tus neeg teb xov tooj rau kev tsim cov txheej txheem.

*

Lub peev xwm los faib tawm ib tus neeg cim uas siv cov null hlua raws li tus nqi ntawm FS , thiab raws li qhov thib peb sib cav rau split () .

*

Qhov kev xaiv thib ob mus rau txoj haujlwm ze () .

*

Qhov kev xaiv thib peb yeem rau txoj kev ua haujlwm () .

*

Lub peev xwm los siv cov ntsiab lus ntawm cov posf nrog printf thiab sprintf () .

*

Kev siv rho tawm array rho tawm tag nrho cov khoom ntawm ib qho array.

*

Kev siv ntawm nextfile los tso pov tseg ntawm cov ntaub ntawv tam sim no.

*

() , Asf () , bindtextdomain () , compl () , dcgettext () , gensub () , lshift () , mktime () , lossis () , rshift () , strftime () , strtonum () , systime () thiab xor () ua haujlwm.

*

Qhov chaw nyob hauv zos.

*

Ntxiv tshiab built-in zog dynamically nrog extension () muaj nuj nqi.

Phau ntawv AWK tsis txhais cov nqe lus ntawm qhov ze () . Gawk tus kaw () rov qab los ntawm tus nqi ntawm fclose (3), los yog pclose (3), thaum kaw cov ntaub ntawv tawm lossis cov yeeb nkab, feem. Nws rov qab ua tus txheej txheem tawm thaum txoj kev xa cov yeeb nkab tawm. Tus nqi rov qab yog -1 yog hais tias cov ntaub ntawv teev npe, yeeb nkab lossis co-txheej txheem tsis tau qhib nrog kev hloov.

Thaum gawk yog invoked nrog cov - xaiv qhov kev xaiv, yog fs sib cav rau cov -F xaiv '`t' ', ces FS yog teem rau lub tab cim. Lus hauv no teb Nco ntsoov tias typing gawk -F \ t ... tsuas ua rau lub plhaub los cim lub `t, '', thiab tsis dhau '` t' 'rau -F xaiv. Vim tias qhov no yog qhov teeb meem tshwj xeeb dab tsi, nws tsis yog tus cwj pwm vim. Txoj kev coj tus cwj pwm no kuj tsis tshwm sim yog tias - qhov tau muab teev cia. Yuav kom tau txais ib lub cim tab li thaj teb separator, nws yog qhov zoo tshaj plaws los siv quotes: gawk -F 't' ....

Saib lwm yam lus : tos , lp , tiav , execv , getfacl , ioctl , uniq , rmmod , pvcreate , rsh , unix2dos , cal , fs , cd , iwpriv , swapon , autofs , tham , motd , dawb , lpr , execl , fdisk , thaum , leej twg , iwconfig , ifconfig , vgdisplay , qhib , lsmod , ntohs , mailq , tua , wtmp