Sapete u Linux Command - gawk

Nome

gawk - scanning scrittura è trattu di lingua

Sinopsia

gawk [POSIX o GNU style options] -f program-file [ - ] file ...
gawk [POSIX o GNU style options] [ - ] file di schedariu di testu ...

pgawk [POSIX o GNU style options] -f program-file [ - ] file ...
pgawk [POSIX o GNU style options] [ - ] file di schedariu di testu ...

Descrizzione

Gawk hè a implementazione di u prugramu GNU di a lingua di prugrammatu AWK. Cumu cunfurmendu a definizione di a lingua in u POSIX 1003.2 Command Language And Utilities Standard. Questa versione a so volta hè basatu nantu à a descrizzione in L'Aghjettivu di Programma Aucatu per Aho, Kernighan è Weinberger, cù e funzioni supplementarii truvati in a versione System V Release 4 di UNIX awk . Gawk pruponi ancu più ricenti Bell Laboratories, stensione awk , è un certu estensione specificu GNU.

Pgawk hè a versione di prufila di gawk . Hè idèntica in ogni modu à gawk , salvu chì i programmi curanu più pianu, è automaticamente pruduce un perfil di esecutzione in u schedariu awkprof.out quandu hè fatta. Vede l'opzione --profile , sottu.

A linea di mandatu hè custituita l'opzioni à gawk stessu, u testu di u scopu di l'Aucunianu (si non furnite per l'opere di u -f o --file ) è i valori per esse dispunibili in ARGC è ARGV predeterminati Variables AWK.

Option Format

L' opzioni di Gawk pò esse o POSIX tradiziunali, una carta l'opzioni, o l'opzioni longu di stile GNU. L'opzioni POSIX accuminzanu cù un '`- -' 'singulu, mentri l'opzioni longu accumenu c` `-' '. Opzioni longi sò disposti per e funzioni specifichi GNU è per funzioni mandate POSIX.

Dopu à l'adopru POSIX, gawk- specific options sò pruvuti à l'argumenti à l'opzione W. L'opere parechji volte pudete esse furnitu L' aghjurnà di l' ottene una opere longu chicchula, com'è detallatu avanti. L'argumintazzioni à l'opzioni longu sò oghji cù l'opzione da un = signu, senza spazii intervenenu, o pò esse furnitu in l'argumentu di linea di cumanda. L'opzioni longu pò esse abrevia, finu à chì a sigurta mantene unicu.

Opzioni

Gawk accetta l'opzioni seguenti, lista alfabeticu.

-F fs

--field-separator fs Use fs for the enter separator field (u valore di a varianti FS predefiniti).

-v var = val

--assign var = val Assignate u valore val à a variàbila var , prima l'esekzione di u prugramatu accumenza. Tali valute varianti sò disponibile per u bloque di BEGIN d'un programa AWK.

-f schedariu di schedariu

--chile program-file Aghjunghjendu a fonte di u schedariu AWK da u schedariu di schedariu di schedariu , inveci di u primu argumentu di cumanda di linea. Opere multiletti -f (o --file ) pò esse utilizati.

-mf NNN

-mr NNN Stipite diverse limiti di memoria per u valore NNN . A frazza fetta a numerosa massima di campi, è a bandera flagella fetta un grandato graficu massimu. Queste dui bandieri è l'option -m sò di a versione di ricerca di Bell Laboratories di UNIX awk . Sò ignorati da Gawk , postu chì Gawk ùn hè micca limite pricate.

-W compat

-W tradiziunale

--compat

--Traditional Run in modu di compatibilità . In modu di cunghjunta, gawk cumportanu identitariamente à UNIX awk ; nessunu di l'estensioni specificu GNU hè ricunnisciutu. L'usu di - tradizione hè preferitu à l'altri furmulari di sta scelta. Vede GNU EXTENSIONS , quì sottu per più infurmazione.

-W copyleft

-W copyright

--copyleft

--copyright Stampa la versione curretta di u messagiu GNU nantu à u messagiu d'infurmazioni intellettuale nantu à u stagatu standard è surtite da successu.

-Dump-variables [ = file ]

--dump-variables [ = file ] Impressjene una lista ordenata di variàbili global, i so tipi è valori finali à u schedariu . Se ùn hè statu un schedariu provisto, gawk usa un schedariu di nomu awkvars.out in u regnu cuntenutu .

Avè una lista di tutti i variàbili global hè un bonu modu per circà l'errore tipugràfichi in i vostri prugrammi. Puderete ancu esse aduprà sta scelta si avete un grande programa cù assai funzioni, è voi esse sicurizate chì e vostre funziunalità ùn utilizate micca in modu lucrativo glubale chì vulete esse locale. (Questu hè un errore simplice è faciule cù nomi di varià simplice cum'è i , j , è cusì.)

Aiutatimi

-W usage

--help

- imprime un sanu relativamente brevi di l'opzioni dispunibili nantu à l'output standard. (Per e struzzioni di codificazione GNU , questa opzioni cause una successu immediata, successu).

-W lint [ = fatale ]

--lint [ = fatale ] Pruveva avvisioni nantu à e custruzioni chì sò dubious o non-portable per other implementations. Cù una opciona opcional di fatal , i avisi pervinte sò fate scontri. Chistu pò esse drammaticu, ma u so usu certamenti stimulerà u sviluppu di i purificati Programmi AWK.

-Vintu micca

--lint-old Pruieva avvisioni nantu à e custruzioni chì ùn sò micca portables à a versione originale di Unix awk .

-W gen-po

--gen-po Scan e analizà u prugramma AWK, è perduce un schedariu GNU .po in standard output cù l'intrattenimentu per tutti i filmi localizable in u prugramma. U prugramma stessu ùn hè micca esecutatu. Vede a distribuzione gettext GNU per più infurmazione nantu à i schedari .po .

-W non-decimal-data

--non-decimal-data Reconezza valuri octali è hexadecimali in i dati di ingranzia. Aduprà sta scelta bellu cura!

-O posis

--posix Questu u modellu di cunghjunta , cù e restrizioni additional:

*

\ sequenzi di e seculi ùn sò micca ricunnisciuti.

*

Solu l'espazio è l'attu di tabulazione cumparenu i separatori di u campu chì FS hè stabilitu à un spaziu unicu, u novu micca.

*

Ùn pò micca cunfurmà e linee dopu ? è :.

*

U sinonimu func per a funzione di keyword ùn hè micca ricunnisciutu.

*

L'operatore ** è ** = ùn ponu esse usatu in u locu di ^ e ^ = .

*

A funzione fflush () ùn hè micca dispunibili.

-W profile [ = prof_file ]

--profile [ = prof_file ] Mandate data di prufilamentu à u prof_file . U paràmetru hè spumante.ru . Quandu si cuntagawk , u prufilu hè solu una versione "stampata" di u prugramma. Quandu si corse cù pgawk , u prufilu cuntene l' aghjuntu di l'esurtazione di ogni stima in u prugramma in u marghjcatu è u funzionu chjamatu cuntatu per ogni funzione definita per l'utilizatore.

-Vintu intervalu

--re-interval Habilita l'usu di l'espressioni interpare in l'espressione regulare currispundente (vede Esempiones Reguli , sottu). L'espressioni interièranu micca tradiziunale in a lingua AWK. U standard POSIX aghjunghje, per fighjà è spaghetti sò cunforme cù l'altri. In ogni modu, u so usu hè prubabile di rivolve i vechji studios AWK, cusì ci sanu solu li furnisce si sò dumandati cù questa opzione, o quandu - - spessu hè specificatu.

-Ugheru programme-text

- pruverà u prugramma-testu Utilizate u prugramma-testu cum'è u codice di u scruttu AWK. Sta opzione permetterà a facilità à scatalogu di funzioni biblioteche (usata à l'opere -f è --file ) cù u codice fonte sfilata nantu à a linea di cumanda. Hè destinatu principalamenti per i schedarii mediani à grandi AWK utilizati in scrittura cunnessione.

-W version

--versione Stampa di versione nantu à sta copia particulare di gawk nantu à u standard output. Hè piacevule solu per sapè se u còdice di gawk nantu à u vostru sistema hè stata data à rispettu à ciò chì a Software Foundation hè di distribuzione. Questu hè ancu utili when annunziate bugs. (Per e struzzioni di codificazione GNU , questa opzioni cause una successu immediata, successu).

- Signale a fine di l'opzioni. Questu hè utile per avè qualchì argumentu à u prugramma AWK per cumincià cù un `` - ''. Questu hè principarmenti per a cunsistenza cu l'argumintazzioni parsing convention utilizada da a maiò parte di i schedari POSIX.

In u modalità di compatibilità, qualsiasi autri opulenti sò marcati per esse invalidi, ma ùn altrimenti ignorati. In l'operazione normale, finu à chì u testu di u programu hè statu furnutu, l'opcions chì sò micca sanu sanu sanu à u prugramma AWK in u dispunutu ARGV per u processatu. Questu hè particularmente utili per esse aduprati programmi AWK a través del mecanicu interpreter executable "#!".

EXECUCION DI PROGRAMA AWK

Un schedariu AWK hè custituitu una sezione di stipule-accuratative statemente è funzione opcional.

patronu { accetta ]

nome di funzione ( lista di paràmetri ) { statement }

Gawk leghje prima a fonte di u prugramma da u schedariu-schedariu (s) se se specifica, da l'argumenti à - sorsi , o da u primu argumentu non-opzione nantu à a linea di cummanda. L'opere di i -f è - sughjettu pò esse usatu parechje volte in a linea di cummanda. Gawk leghje u testu di u testu cumu si tutti i testi di u schedariu di schedariu è i lumi di a linea di cumanda s'hè cuncatenatu inseme. Questu hè ùtule à a bibbiuteca di e funzioni d'AWK, senza avè avè incunificatu in ogni novu programa AWK chì l'usa. Hà a capacità di mischjerà funzioni biblioteche cù i programmi di linea di cummanda.

U mudellu di l' inturnianza AAKPATH specifica un modu di ricerca per l'utilizazione when truvà i schedari fonte chjamati cù l'opzione -f . Sì sta varià ùn esiste micca, a via predefinita hè ".: / Usr / local / share / awk" . (U direttu propiu pò varià, secondu cumu si a gawk hè stata fatta è installata.) Se un nome di scrittore chjamatu à l'opzione -f contene un '/ /' 'carattere, ùn hè realizatu una ricerca di strada.

Gawk executa programmi AWK in l'urdinariu. Prima, tutti i travaglii variàbbili specifichi per l'opzione -v sò realizati. In seguitu, gawk compileghja u prugrammu in una forma interna. Allora, gawk executa u codice in u bloque (s) BEGIN (se), è prucede per leghje alcune file named in the ARGV array. Se ùn ci hè micca un schedariu chjamatu nantu à a linea di cumanda, gawk leghje l'aiutu standard.

Se un filename in a linea di cumanda hà a furmazione var = val hè tratatu com'è assignmentu variàbile. A varià variante serà assignatu u valore val . (Questa succede dopu à u BEGIN block (s) hè stata aduprata.) L'assignazione di a varietà di a linea Command hè più utili per dinamica assignà i valori à e variàbili AWK utilizeghja per cuntene ciò chì l'ingaghjamentu hè spartutu in i campi è i registri. Hè ancu utile per cuntrollu di statali si parechji passati sò necessità nantu à un schedariu unicu data.

Se u valore d'un elementu particulari di ARGV hè vacante ( "" ), Gawk hà sguassatu.

Per ogni registru in l'ingaghjamentu, prucede di Gawk per vede s'ellu hà cumplettu cù un mudellu in u prugramma AWK. Per ogni patronu chì i partituri di registri, l' accusazione accunsente hè eseguitu. I patti sò pruvati à l'ordine chì elle in u prugramma.

Infine, dopu chì tutte l'ingaghjamentu hè aghjustatu, Gawk executa u codice in u bloque (s) END (se).

Variables, Ritratti è Campi

Adupicule varianti sò dinamichi; vènenu esse l'urdinarii chì sò stati primi utilizati. I so valori sò o numuli di u chjappu u chjappi, o i dui, secondu cumu si sò utilizati. AWK hà ancu unu un'altra dimensioni; Ughjetti cù dimensioni multiplica ponu esse simulati. Diversi variate definite chjaru sò stati cum'è un prugramma corre; Queste sianu chjamati cumu toccu è sommatu sottu.

Records

Nurmalmentu, i registri sò siparati da i caratteri novi. Pudete cuntene a manera chì i fugliali sò siparati da assignà i valori à a varià variante RS . Se RS è qualunque carattere unicu, stu caratteru separa i registri. Inutili, RS è una espressione regulare. U testu in l'entrée chì currisponde à sta espressione regulare separa u registratu. In ogni casu, in modu di cunghjunta, solu u primu caratteru di u so numeru stringu hè utilatu per separà i registri. Se RS è setse à a stringa nulla, in seguitamente i ricordi sò siparati da i fili in biancu. Quandu RS hè setatu à a stringa nulla, u novu carattere sempre funziona cum'è un separatore di u campu, in più di quellu chì valore FS pò avè.

Campi

Cumu ogni ghjornu di ingranza hè leggugliatu, Gawk divide u registratu in i campi , utilizendu u valore di a varianti FS com'è u separatore di u campu. Se FS hè un carattaru solidu, i campi sò siparati da quellu caratteru. Se FS hè a stringa nulla, dopu ogni carattere individuali si fate un terrenu sipatu. Inutili, FS hè d'esse una espressione regulare. In u casu specialu chì FS hè un spaziu unicu, i campi sò siparati da e mancalli d'espunenti è / o pezzi è / o novi. (Ma see the discussion of --posix , below). NOTA: U valore di IGNORECASE (vede a menucinà ) affecca ancu chì i terreni sò split quan FS hè una espressione regulare, è cumu si riggistranu i ricordi quannu RS hè una espressione regulare.

Se a variabile di FIELDWIDTHS hè stata a un spaziu separatu di lista di numme, ogni campu hè speditu chì anu detta anchura fissa, è gawk split up the record usando l'anch'elli especificati. U valore di FS hè ignoratu. Assigning un novu valore à FS prumesse l'usu di FIELDWIDTHS , è restaurate u cumpurtamentu predettu.

Ogni terrenu in u registratu d'ingranza pò esse riferiti da a pusizione, $ 1 , $ 2 , è cusì. $ 0 hè u registratu tutale. I campi ùn anu micca bisognu riferitu da e constante:

n = 5
print $ n

impremia u quintu pianu in u registratu di l'input.

A variàbildu NF hè stituutu à u numeru tutali di campi in u registratu di l'input.

I referenzi à i campi non esistenti (esempi campi dopu à $ NF ) pruducianu a stringa null. In ogni modu, assignendu à un campu micca esistenti (per esempiu, $ (NF + 2) = 5 ) aumenta u valore di NF , crea un terrenu chì intervene cù a stringa nulla com'è u so valore, è pruvucarà u valore di $ 0 per riaccumpricà, cù i campi sò siparati da u valore di OFS . I referenzi à i campi nummurati negattivi causanu un fatal error. Decrementazione di NF pruvucarà i valori di i campi passendu u novu valuru per esse perdu è u valore di $ 0 per rimpumputà, chì i campi sò esse separati da u valore di OFS .

Assignà un valore à un terrenu esistenti cusì u guvernu tutale di ricustruisce quandu $ 0 hè riferitu. In u stessu, assignà un valore à $ 0 pruvucarà a récord da resplit, creendu novi valuri per i campi.

Built-in Variables

I Vangabile integrati di Gawk sò:

ARGC

U numaru di l'argumintazzioni di linea di mandatu (ùn ne includeranu micca l'opzioni à gawk , o a fonte di u prugramma).

ARGIND

L'indexu in ARGV di u schedariu chì hè stata procesatu.

ARGV

Array of line arguments in command. U razzamentu hè indiziatu da 0 à ARGC - 1. Candu di mudificà u cuntenutu di ARGV pò cuntrola l'usti di data.

BINMODE

In sistemi non-POSIX, specifica l'usu di u modu '`binariu' 'per ogni file I / O. Valenzi numerii di 1, 2, o 3, spicificanu chì iputti di ingressu, rùmpie dispunibule, o tutti i schedari, rispettivamente, deve adubarà I / O binariu. String di "r" , o "w" specifichi ca l'articuli di ingressu, o riti di u risorsu, rispettivamente, deve aduprà I / O binariu. String di "rw" o "wr" spicificanu chì i vostri schedari puderanu aduprà I / O binariu. Qualchese altre valuru di corda hè trattu com'è "rw" , ma genera un messagiu d'avvucatu.

CONVFMT

U format di cunversione per i numeri, "% .6g" , per difettu.

ENVIRON

Un array chì cuntene i valori di l'ambienti attuale. U siliziu hè indiziatu da i mediiambienti ambienti, ogni elementu hè u valore di quella variable (per esempiu, ENVIRON ["HOME"] puderia esse / casa / arnold ). U cambiamentu di sta fugliale ùn hà micca influenatu l'ambienti veddi da programmi chì gawk spawns via redirection o a funzione di u sistema () .

ERRNO

Se un errore di u sistema si faci parechje una redireczione per getline , durante una lettura di getline , o durante un cercanu () , allura ERRNO cuntene una chjola di qualificazione l'errore. U valore hè sottumessu à a traduzzione in locu micca di l'inglesi.

AFFARIATA

Un listinu spaziu biancu spartutu di e anche di campo. Quandu si set, Gawk parses l'input in fields of fixed width, invece d'utilizandu u valore di a variable FS cum'è u separatore di field.

FILENAME

U nomu di u schedariu di uputu attuale. Se ùn ci hè specificatu numeri in a linea di cumanda, u valore di FILENAME hè "` - "". In ogni casu, FILENAME hè indefinitatu nant'à u locu BEGIN (à menu chì si disposti da spiegazione ).

FNR

U numbru in rigalu diputatu in u filatu di uputu currente.

FS

U separatore di u campu di input, un spaziu per difettu. Vede Campi , sopra.

IGNORECASE

Cuntrolla a sensitivi di i casi di tutti l'espressioni regulare è u stringu di operazione. Se IGNORECASE hè un valore non-zero, secondu e componi di stagione è cunnessione di patrone in reguli, splitting field with FS , récord per separare cù RS , espressione regulare currispondente con ~ and ! ~ , È l' gensub () , gsub () , index () , cunnessione () , split () , è sub () funzioni integrati ignite u casu quand'elli facenu operazione di spressione regula. NOTA: Sottoscribe matriciale ùnmicca affettatu, è nè a funzione d'asort () .

Cusì, se IGNORECASE ùn hè micca uguali à cero, / aB / cunnessione tutte e strings "ab" , "aB" , "Ab" , è "AB" . Cumu cù tutte e variàbili AWK, u valore iniziale di IGNORECASE hè cero, perchè tutti l'espressioni regulare è l'operazione stringe sò normalment sensitivi per a maiò. Sottu Unix, u chjaru ISO 8859-1 chjamatu Latin-1 hè utilatu quandu ignora u casu.

LINT

Piglia un cuntrollu dinamicu di a opción --lint da un prugramma AWK. Quandu hè veru, gawk stampi avis avis. Quandu falsu, ùn hè micca. Quandu hà attribuitu u valore di stringe "fatal" , i avisi pervinte sò fate scatte , cusì cum'è --lint = fatale . Ogni qualsimu veru valore just stampiate avisi.

NF

U numaru di campi in u registru prughjettu attuale.

NR

U numaru nùmmaru di rigistri d'ingussiru vistu finu à quì.

OFMT

U formatu di uputatu per i numeri, "% .6g" , per modu di modu predeterminatu.

OFS

U separatore di u campu di iputu, un spaziu per difettu.

ORS

U dischettu di registru output, per una cumprumella una nova linea.

PROCINFO

L'elementi di stu dispusitivu furnisce l'accessu à l'infurmazione nantu à u schedariu AWK running. In certi sistemi, pò esse elementi in u gruppu, "group1" per " n gruppu " per qualchì n , chì hè a quantità di gruppi supplementarii chì u prucessu hà. Utilizare u operatore per pruvà per queste elementi. L'elementu seguenu sò garantiti à esse dispunibule:

PROCINFO ["egid"]

u valore di u sistema getegid (2).

PROCINFO ["euid"]

u valore di u sistema geteuid (2).

PROCINFO ["FS"]

"FS" si u split di campu cù FS hè in effetti, o "FIELDWIDTHS" se uparazione di u campu cù FIELDWIDTHS hè in effetti.

PROCINFO ["gid"]

u valore di u sistema getgid (2).

PROCINFO ["pgrpid"]

l'identità di u gruppu di prucessu di u prucessu attuale.

PROCINFO ["pid"]

l'identità processu di u prucessu attuale.

PROCINFO ["ppid"]

l'identità di processu parente di u prucessu attuale.

PROCINFO ["uid"]

u valore di u sistema getuid (2).

RS

U separatore di l'impegni, per mezu di manera predilettu.

RT

U terminatore di registratu. Gawk set RT à u testu di l'entrattu chì hà versatu u caratteru o l'espressione regulare specifichi per RS .

RSTART

L'indici di u primu caratteru assicuratu da match () ; 0 se no match. (Quessu hè chì l'indici di carattere accumincianu à unu).

RLENGTH

A durata di a corda incù un match () ; -1 se no match.

SUBSEP

U carattere usatu per separà parechji affari in elementi arriconali, per "034" predeterminatu.

TEXTDOMAIN

U duminiu di testu di u prugramma AWK; utilizatu per truvà e traduzzione localizzata per i filamenti di u prugramma.

Arrays

I rai sò sottritificati cù una sprissione trà e parcheghja caduta ( [ e ] ). Se l'espressione hè una lista d'espressioni ( expr , expr ...) allura u sottu array hè una stringa cunzentazione di u valore (string) di ogni espressione, siparati da u valore di a variable SUSTITUZZI . Questa facilità si usa à simulerà parechje dimensione. Per esempiu:

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

assigna a string "hello, mundiale \ n" à l'elementu di a matrize x chì hè indiziatu da a catena "A \ 034B \ 034C" . Tutte l'arghji in AWK sò associativi, vale à dì indettati da i valori di stringe.

U operatore spéciale in puderà esse usatu in una affirmazione chì, si o mentre dinò per vede se un array ha un indivu chì cumpone un valore particulari.

if (val in array) print array [val]

Se l'array tenete parechji suntrati, utilice (i, j) in array .

In a custruzzione pò ancu esse usatu in un loop per iterate nantu à tutti l'elementi di un array.

Un elementu pò esse sguassatu da un array chì utilizate u struitu eseguitu. U statutu eseguitu pò esse usatu ancu per sguassà u cuntenutu sanu di un array, solu per esse specifiche u nome array senza un suntintu.

Un scrive è cunversione variàbbili

Variàbile è campi pò esse (nummari flottante) numeri, o strings, o i dui. Cumu u valore di una variable variable hè interprittu dependa u so cuntestu. Se se usa in una espressione numericu, serà trattu com'è un numeru, se s'utilice com una stringa serà trattu com una stringa.

Per forza una variàbile per esse trattata com'è un numeru, aghjunghje 0 à questu; per forza chì hè trattu com una stringa, concatenate cù a stringa nulla.

Quandu una stringa deve esse cunverta una quantità, a cunversione si cumpiace aduprata strtod (3). U numaru hè cunvertisce in una stringa utilizendu u valore di CONVFMT cum'è una stringa di formatu per sprintf (3), cù u valore numericu di a varianti cum'è l'argumentu. In ogni modu, anche ancu chì tutti i numeri in AWK sò u puntu flottante, i valori integrali sò sempre convertiti cum'è integri. Cusì, datu

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

a variàbile b hè un valore stringe di "12" è micca "12.00" .

Gawk duvereghja cumparacesi cum'è seculi: Se dui variàbili sò numeriati, sò numeri numeriusi. Se un valore hè numericu è l'altru hè un valore di stringe chì hè una "ghjustu numericu", invece e comparaison sò ancu numinati. In no mane, u numicu valuru hè cunvertisce à una stringa è una cumparazione di corda hè realizata. Dui cordelli sò paragunati, sicuru, cum'è cordi. Innota chì u standard POSIX applicanu u cuncettu di `` string numerique '' in ogni locu, ancu à u stringe constante. In ogni casu, questu hè chjaramente incorrect, è gawk does not do this. (Fortunatamente, questu hè stallatu in a versione di u standard).

Nota chì e constante di stringe, cum'è "57" , ùnmicca strings numerici, sò perseveranti. L'idea di `` string numericu '' solu s'applicava à i campi, l' articulu di cunnessione , l' ARGV , l' elementi ARGV , l' ELEMENTI ENVIRON è l'elementi di un array creatu da split () chì sò numeric strings. L'idea basta hè chì l'inputu di l'utilizatori , è solu l'input di l'utilizatore, chì pari numeriche, deve esse trattatu di questu modu.

Univizzioni inizializzati sò u numèri numericu 0 è u valore di stringu "" (u nuvellu, o voce, string).

Custali d'Octali è Hexadecimali

Aduprà cù a versione 3.1 di gawk, pudete aduverà C-stile constantali e octali in u vostru codice di u scruttu AWK. Per esempiu, u numaru 011 hè uguali à u decimali 9 , è u valore hexadecimale 0x11 hè uguali à u decimale 17.

Stante Constante

E custanti stringi in AWK sò seconde di caratteri chjusu trà dui cite ( " ). Dopu à i filotti, certu sequenzi di scuperte sò ricunnisciuti, cum'è in C. Quest sò:

\\

A literal backslash.

\ a

U caratteru di "alerta"; in solitu u caricu ASCII BEL.

\ b

spassu.

\ f

form-feed.

\ n

newline.

\ r

carrughju.

\ t

tabulazione horizontale.

\ v

tabulazione verticale.

\ x hex digits

U carattere ripresentatu da a stringa di numeri di hexadecimali dopu à a \ x . Comu in ANSIC, tutte e numeri di calculus hexadecimali sò cunsiderati parte di a secùa scappata. (Questa funziunalità ci puderà annunzià qualcosa di u disignu di linguaggiu per cumitatu). Esempiu "\ x1B" hè u caricu di ASCIIESC (escape).

\ ddd

U carattere ripresentatu da a sigulu 1, 2-, o 3-numeri di numeri octali. Per esempiu, "\ 033" hè u caricu ASCII ESC (escape).

\ c

U carattere literale c .

I sekwenzi fugdi pò ancu esse usatu in l'espressioni constantemente regulare (per esempiu, / [\ t \ f \ n \ r \ v] / fendu spicità di spaziarii).

In modu di cunghjunta, i caratteri ripresentati da securitate di echiteddi octal è hexadecimali sò trattati literalment quan s'utilice in constantu di spressione regula. Cusì, / a \ 52b / hè equivalent à / a \ * b / .

Patrucini è azzione

AWK hè una lingua in linea. U patruni hè prima di prima, è da l'accion. Studi d'azzioni sò chjusti in { e } . O u patronu pò mancà missing, o l'accion poterà mancanti, ma, sicuru, micca i dui. Se u patronu hè mancatu, l'accontu hè eseguitu per ogni sanu di l'input. A manca d'accadenza hè equivalente

{print}

chì stampi tuttu u recordu.

I cumenti si ponu cumprà u caratteristicu `` # '', è cuntinuà finu à a fine di a linea. Linzi bianchi ponu esse usatu per sparti affirmazioni. Nurmalmentu, una stanza accurte cù una nova linea, però, questu hè micca u casu per i licei chì finiscinu in un ``, '', { , ? , : && , or || . I posti chì finiscinu à o ancu avè a so dichjarazione autumaticamenti continuatu nantu à a seguente linea. In altri casi, una ligna si pò cuntinuà aduendu cù un ', in quale casu a nova linea serà ignurata.

Assicuranza multiplica pò esse mette nantu à una fila per separà cù un ``; ''. Questu hè appiicatu à l'intemperiesi in a parti di l'accionu di un paru di patch-accionamentu (u casu d'abitudine), è à l'astratti standard-action.

Patroni

I modelli AWK pò esse unu di i seguenti:

BEGIN END / expression normale / expression pattern && pattern pattern || patro patricu ? Patru : patro ( standard ) ! mudellu pattern1 , pattern2

BEGIN è END sò duie spezii spicii di mudelli chì ùn sò micca pruvati à u cuntrollu. I parte di l'azzioni di tutti i mudelli BEGIN sò cunfunditi cum'è se tutti l'affirmazioni anu statu scritte in un solu bloque BEGIN . Sò eseguitu per esse prima di qualsiasi di l'input hè leggiu. Inoltri, tutti i quadri END sò funzionati, è esegwitu quandu tuttu l'input hè aghjustatu (o quandu un manifestu da esurtazione eseguite). BEGIN è END patterns ùn ponu esse cumminati cù altri patti in espressioni di patrone. BEGIN è END patterns ùn pò micca avè parte d'azzioni.

Per / expressione regulare / mudelli, u cunnessu assuciatu hè eseguitu per ogni rapportu di l'inpute chì face l'espressione regulare. L'espressioni reguli sò i stessi cum'è quelli in egrep (1), è sò summarizzati sottu.

Una espressione relazione pò utili qualchì òpera di l'operatore definitu in a seccione nantu à ezioni. Sti generalmente pruvucate se certi campagnini cuncurdate certu espressioni regula.

A && , || , è ! L'operatore sò lògichi E, O loogichi è logichi NO, rispettivament, cum'è in C. Hè a valutazione di spartaghju, ancu com'è in C, è sò usati per combine esprissioni di più primitivi. Comu a maiò parte di e lingue, parèntesi pò esse usatu per cambià l'ordine di valutazione.

L'operatore? Hè cum'è u stessu operatore in C. Se u primu patronu hè veru, u patronu utilizatu à a prova hè u sicondu patronu, altri hè u terzu. Solu solu di u secondatu è terzu mudelli hè stata evaluata.

U patronu1 , u furmatu2 di una espressione hè chjamatu un patronu di gamma . Truverete tutti i rigistri d'ingressu chì incuntannu un discorsu chì coincide cù un patronu1 , è cuntinuendu finu à un discorsu chì incontrule pattern2 , inclusive. Ùn si combina cù qualsiasi modi di espressione standard.

Expressions Regulare

L'espressioni reguli sò u tipu estensivu truvatu in l' egrep . Sò fatti di caratteri cum'è:

c

coincide cù u mechjaricu metacaractericu c .

\ c

coincide cù u caractère literale c .

.

coincide cù qualsiasi carattere cum'è novità.

^

coincide cù u principiu di una stringa.

$

coincide cù a fine di una catena.

[ abc ... ]

cartulare di caratteristiche, hà parechje alcuni caratteriè abc ....

[^ abc ... ]

Lista negligente di carattere, ùn cumpleta nessunu caratteri eccettu abc ....

r1 | r2

alternazione: partenza r1 o r2 .

r1r2

A cuncatenazioni: cuncerni r1 , è dopu r2 .

r +

coincide cù un o più di r .

r *

coincide cero o più di r .

r ?

cuncetta zero o un r 's.

( r )

agrupatu: partiti r .

r { n }

r { n ,}

r { n , m } Un unu o duie numeri chjappi in l'armati denote una espressione variale . S'ellu ci hè un numeru in l'arrughju, l'espressione regulare precedente r hè ripetuta in n times. Se ci sò dui numeri separati da una vinu, r hè ripetitu à n mumentu. Se ci hè un numme seguitu da una vigna, averemu r hè ripetuta almenu n voti.

L'espressioni interiù sò solu dispunibili sia - - Obleze o - l'intervalu hè specificatu nantu à a linea di cumanda.

\ y

coincide cù a fila vittima in u principiu o a fine di una parolla.

\ B

currisponde à a catena vacca à una parolla.

\ <

currisponde à a filetta viglia à u principiu di una parolla.

\>

coincide cù a filetta vittoria à a fine di una parolla.

\ w

coincide cù un carattere chjaru di parola (letter, cifru, o underscore).

\ W

coincide cù un carattere chì ùn hè micca un cuntrastu di a parolla.

\ `

currisponde à a filetta viglia à u principiu di un buffer (string).

\ '

coincide cù a filetta vittoria à a fine di un buffer.

I sequenzi di salvezza chì sò validu in i constanti di stringe (vede below) sò ancu validi in espressioni regulare.

Classe di caratteristiche sò una nova funzione introduttu in u standard POSIX. Una classa di carattere hè una notazioni spéciale per a descrizzione di listi di caratteri chì anu un attributu specificu, ma unni i caratteristiche propri stessi pò varià da u paese à u paese è / o da u ghjocu di caratteri à u ghjocu di caratteri. Per esempiu, a nuzione di ciò chì hè un caratteristiche alfabeticu differia in l'USA è in Francia.

A classa di carattere hè solu valida in una espressione regulare entre i parcheti di una cartulugia. Classe di caratteristichi cunzistenti di [: , una chjave di u denotazione di a classe, è :] . I caratteri di carattere definite da u standard POSIX sò:

[: alnum:]

Caratteri alfanumèttici.

[: alfa]

Caratteristiche alfabetici.

[: in biancu:]

Space or tab characters.

[: cntrl:]

Caratteri di cuntrollu.

[: cifru:]

Caratteri numerichi.

[: graph:]

I caratteri chì sò stampati è visibuli. (Un spaziu hè imprimible, ma micca visibile, mentri una a hè tuttu.)

[: bassa:]

Caratteristiche alfabeticu.

[: stampa:]

Caratteri stampati (caratteri chì ùn sò micca persona di cuntrollu).

[: punct:]

Caratteri di punctuazione (caratteri chì ùn sò micca lettera, numeri, caratteri di cuntrollu, o caratteri spazziu).

[: spaziu:]

Caratteri spazii (per esempiu, l'espazio, tabulazione è pridicazione).

[: parte superior:]

Caràtti alfabetici superipezici.

[: xdigit:]

Caratteri chì sò numeri di stile.

Per esempiu, prima di u standard POSIX, per fettighjà i caratteri alfanumerici, avete avutu bisognu di scrive / [A-Za-z0-9] / . Se u vostru caratteru di caratteri anu avutu parechji caratteri alfabetici, questu ùn avianu micca currispondenu cù elli, è se u vostru caratteru hà raghjugatu diferentamente da l'ASCII, questu puderia ancu micca cù i caratteri alphanumerici ASCII. Cù u classi di caratteri POSIX, pudete scrive / [[: alnum:]] / , è questu cù i caratteri alfabetichi è numeri in u vostru caratteru di caratteri.

Dui sekucesi supplementarii spiciali ponu appare in listi di caratteri. Quessi sò appiicati à i schezii di caratteri non-ASCII, chì ponu esse simbuli singuli (chjamati elementi cuntabili ) chì sò rapprisentati cù più di un caratteru, è ancu parechji caratteri chì sò alloghju per cundubili o dispusitivu. (Per esempiu, in French, una chianura `` e '' è una accented gravure e` sò equivalenti).

I simboli cullativi

Un simbulu culligatu hè un elementu di cumentu multiplicatu in [. e .] . Per esempiu, se ch è un elementu culliddu, allura [[.ch.]] Hè una espressione regulare chì hà incunghjuli cù questa elementu di crescente, mentre chì [ch] hè una espressione regulare chì ci hè una c or h .

E Classi Equivisenza

Una classa di l'equivalenza hè un nome specificu locale per una lista di caratteri chì sò equivalenti. U nome hè aggruppatu in [= and =] . Per esempiu, u nome e puderia esse usatu per rapprisintà tutte e `` e, '' e ',' 'e `` e`.' 'In questu casu, [[= e =]] hè una espressione regulare chì coincide cù qualcosa di e , e ' , o e` .

Sti carattati sò assai valerdi in locu di parlà non inglesu. A funzioni di a biblioteca hè questu quì si usa l'espressione regulare currispundente Accolta solu a ricunniscenza i classi di caratteri POSIX; ùn anu micca ricanusciutu i simbolti di culligamentu o e classi di l'equivalenza.

A \ y , \ B , \ < , \> , \ w , \ W , \ ` è \ ' operatori sò specifiche à gawk ; sò allarggiati nantu à e facilità in a libberu di l'espressione regular GNU.

L'opere di linea di mandate cuntenenu quandu Gawk interpreta caratteri cù l'espressioni regulare.

Nisuna opcions

In u casu predeterminatu, Gawk furnisce tutte l'instalazione di POSIX espresioni regulare è l'operatorii di spidizioni regulare di uGNU deskritti più arriba. In ogni casu, l'espressioni interpunientali ùn sò micca supportati.

--posix

Solu l'espressioni regular POSIX sò sopurità, l'operatore GNU ùn sò micca spiciale. (Esempiu \ w face una w literale). E espressioni interiali sò permessi.

- tradizionale

Unicefichi tradizziunali ùn eseguunu esse spressione regulare. L'operatore GNU ùn sò micca spiciale, l'espressioni interprucesi ùn sò micca dispunibuli, è nè tampiranu i pirsuni di caratteri POSIX ( [[: alnum:]] è cusì avà ). I chjassi cagiunati per securenze di scuperte octal è hexadecimali sò trattati literalmente, ancu s'ellu fugliate l'espressioni normale metacharacters.

--re-interval

Permettenu espressioni interpare in espressioni reguli, ancu se - tradiziunale hè statu furnitu.

Actions

Studi d'accetta sò chjusu in braccialetti, { e } . Studi d'accontu consistanu di l'assignatura solitu, stati cunnizziunate è inturniati in a maiò parte. L'operauriche, e cuntrolli di cuntrollu, è l'infurmazioni / dispunzioni esse dispunibili sò stampati da quelli in C

Operators

L'operatore in AWK, in modu di preminenza dimascente, sò

( ... )

Agrupazione

$

Field reference.

++ -

Incrementu è decrementu, duie prefixu è postfix.

^

Proponentiation ( ** pò ancu esse usatu, è ** = per l'operatore di assignment).

+ -!

Unary plus, unary minus, è negazione lògica.

* /%

Multiplicazione, divisioni è modulus.

+ -

Addituzione è sustegnu.

u spaziu

Statua di cuncatenatu.

<>

<=> =

! = == L 'operatore di relazione regulare.

~! ~

Express match regular, match nigato. NOTA: Ùn aduprate micca una esprissioni constantali ( / foo / ) nantu à u manca di u ~ or ! ~ . Solu utilizate unu à u dirittu right. L'espressione / foo / ~ exp tiene el mismo significado que (($ 0 ~ / foo /) ~ exp ) . Questu ùn hè micca solu ciò chì hà dettu.

in

Membre di array.

&&

Lòggica E.

||

Lòggica OR.

?:

L'espressioni cunnizzioni C. Questu hè a forma expr1 ? expr2 : expr3 . Se expr1 hè veru, u valore di l'espressione hè espr2 , altri hè expr3 . Sò solu di expr2 è expr3 hè stata evaluata.

= + = - =

* = / =% = ^ = Assignamentu. Ogni assignatura assuluta ( var = value ) è l'assignment d'operatore (l'altri formi) sò supportati.

Studii di cuntrollu

I tistimunziatichi di cuntrolli sò dinò:

se ( condition ) statement [ else statement ] while ( condition ) statement do statement while ( condition ) for ( expr1 ; expr2 ; expr3 ) statement for ( var in array ) statement break continue delete range [ index ] delete array exit [ expression ] { affirmazioni }

I / O Stati

Ipututi diputatu / avanzati sò dinò:

close ( file [ , how ] )

Certe archiviari, pipe o co-process. L'opcionu cumu si deve solu usatu quandu chjuderaghju un finu di un canna bidirettu à un co-processu. Hè bisogna un valore stringe, da "à" o "da" .

getline

Set $ 0 da u scrittu imustamentu; set NF , NR , FNR .

getline < file

Set $ 0 da u prubleu di u schedariu ; set NF .

getline var

Set var da questu registru d'ingressu; set NR , FNR .

getline var < file

Set var di a prublema di u registratu.

cumanda | getline [ var ]

U cumandamentu cumandamentu a pruducia o in $ 0 ou var , cum'è quì sopra.

Command | & getline [ var ]

Esecutà cumandimu cum'è un co-processu chjaru a pruduzzioni o in $ 0 o var , cum'è quì sopra. I co-processi sò una estensione gawk .

appressu

Detendu trattatu u registratu di l'attuali. U scrittore di uputtu impurtanti hè leggiu è trasfurmà cù un primu attu in u prugramma AWK. Se l'ultima di l'infurmazioni ghjunghje ghjunghje, u centru END (s), se anu, sò eseguiti.

nextfile

Detendu a tramutà u schedariu di uputu currente. A scuperta data diputatu di leghje veni da u propriu scrittu d'input. FILENAME è ARGIND sò aghjurnati, FNR hè stallatu à 1, è u prucessu accumenza cù u primu patronu in u prugramma AWK. Se l'ultima di l'infurmazioni ghjunghje ghjunghje, u centru END (s), se anu, sò eseguiti.

stampa

Prints u recordu correnti. U registru di a vendita hè terminata cù u valore di a varianti ORS .

imprime expr-list

Espressioni stampati. Ogni espressione hè spartuta da u valore di a varià OFS . U registru di a vendita hè terminata cù u valore di a varianti ORS .

imprime expr-list > archive

Espressioni stampati nantu à un schedariu . Ogni espressione hè spartuta da u valore di a varià OFS . U registru di a vendita hè terminata cù u valore di a varianti ORS .

printf fmt, expr-list

Formate è stampà.

printf fmt, expr-list > file

Formate è stampate nantu à u cartulare .

sistema ( cmd-linea )

Execute u cumandru Cmd-line , è retorna l'ufficiu di sera. (Questu pò micca esse dispunibuli nantu à sistemi non-POSIX).

fflush ( [ file ] )

Flusà ogni bufferu assuciatu cù u schedariu di pruduzione aperta è di u pipe. Se u schedariu faltò, u pruduttu standard hè fustu. Se u schedariu hè a stringa nulla, allora tutti i filetti di uputatu aperte è i pipi anu u so bufferblanti fluschjat.

I redirections di u risultatu supplementu sò permessi per stampà è stampatu .

print ... >> file

appends output à u schedariu .

print ... | cumannu

scrive nantu à una pipa.

print ... & command

Mandarà datu à un co-processu.

U mandlu getline retorna 0 a fine di u file è -1 nantu à un errore. Doppu un errore, ERRNO cuntene una seria chì discrivinu u prublema.

NOTA: Se usa una pipa o cun processu per rinfrescante , o da stampatu o printf in un loop, deve utilizà cercanu () per creà novi instance di u cumandimu. AWK ùn hà micca autumaticatu oghje purti o co-prucessi quand'eddi tornanu EOF.

A Stampa printf

A versione AWK di a manifestazione printf e sprintf () funzione (vede sottu) accetta i formati di specificazione di cunversione:

% c

Un caricu ASCII. Se l'argumentu per % c hè numeriche, hè trattu com'è un caratteru è stampatu. Inutili, l 'argumentu hè presumitu chì hè una stringa, è l'unica prima caratteristica di quella stringa hè stampata.

% d , % i

Un numaru decimale (a parte integera).

% e,% E

Un numaru di punti flottante di a forma [-] d.dddddde [+ -] dd . U formatu % E in E no piace d' e .

% f

Un numaru di punti flottante di a forma [-] ddd.dddddd .

% g,% G

Aduprà a % E o % f criace, quellu chì hè più corta, cù certe no significanti suprimi. U formatu % G hà in % E invece di % e .

% o

Un numaru octal unsigned (ancu un nùchire).

% u Un numeru numellu senza sigretu (novu, un integeru).

% s

Un stringu di carattere.

% x,% X

Un numaru inefatu numellu (un entero). U formatu % X usa ABCDEF inveci di abcdef .

%%

Un % unicu caratteru; nudda argumentu hè cunvertitu.

Opcional, paràmetri addizzjonali si trovani trà u % è a carta di cuntrollu:

cuntà $

Utilizà a disputa di u conte in questu puntu in u furmatu. Questu hè chjamatu un specifieru pusizzionali è hè distinatu principalamenti per utilizà in versioni tradotti di stringe di furmatu, micca in u testu originale di un programa AWK. Hè una estensione gawk .

-

L'espressione esse spustata in justificazioni in u so campu.

u spaziu

Per cunversione numèrica, prefixu valori pusitivi cun un spaziu è negativu cun un signu minusariu.

+

U sinjalu di più, utilizzatu davanti à u modifore di l'altitudine (vede sottu), dice chì sempre furnisce un signu per cunversione numèrica, ancu s'elli i dati per esse furmatu hè pusitivu. A + averebbe u modificatore spaziu.

#

Aduprate una "forma alternante" per certi cartuli di cuntrollu. Per % o , pruvene un cimientu prima. Per % x , è % X , furnisce un 0x o 0X punteve per un risultu nferu. Per % e , % E , è % f , u risultatu sempre cuntene un punt decimal. Per % g , è % G , cerori rii ùn sò micca sappiutu da u risultatu.

0

Un cumportante 0 (cero) acteghja cum'è bandiera, chì indicanu a purtata duverà esse accustatu cù certezza invece di spazi. Questu hè applicà ancu à furmati di non-numeric output. Questa bandiera hè solu un effettu quan u largu di u campu hè più largu ca u valore à esse stampatu.

larghezza

U campu duverà esse accustatu à stu largu. U campu ghjè abitata cumulate cù spazi. Se a bandera hè stata aduprata, hè cumposta à certi.

. prec

Un numeru chì specifica a precisione d'utilizzà quandu imprima. Per u % e , % E , è per formate % f , cusì numene u numaru di figuri chì vulete stampatu à a direcia di u puntuale. Per u % g , è per formate % G , specifica u massimu numeali di figuri significanti. Per i formate % d , % o , % i , % u , % x , è % X , specifica u numaru minimu di numeri per imprimir. Per % s , dichjarà u numeru massimu di caratteri da a catena chì deve esse stampata.

L'amma dinamica è precunità di a capacità ANSI C printf () sò supportati. A * in u locu di l' espansione ou precondizioni specifichi u so valori sò da esse tastati da a lista d'argumentu per stampà o sprintf () . Per utilizà un specifier posizionali cun un ambrata dinamica o precisione, furnisce u contu $ dopu a * in u stringu di format. Per esempiu, "% 3 $ * 2 $. * 1 $ s" .

Special Names File

Quandu fate I / O redireczione da stampà o stampatu in un schedariu, o via getline di un schedariu, gawk ricunnisciutu certu nome di nomu speciale internamente. Questi nomini permettenu l'accessu à scrittori di u file apertu heredate da u prughjettu di u prughjettu di Gawk (in solitu l'intesa). Sti nomi di archivi pò ancu esse usatu nantu à a linea di cumanda per nome di schedari di data. I filename sò:

/ dev / stdin

U standard input.

/ dev / stdout

U prughjettu standard.

/ dev / stderr

U prughjettu standard di errore.

/ dev / fd / n

U schedariu associatu cù u descriptore file aperta n .

Questi sò particularmente utili per missaghji di errore. Per esempiu:

print "Sugnu" > "/ dev / stderr"

mentre chì avete altri utilizate

print "Sugnu" | "cat 1> & 2"

Ùn puderà esse utilizate l'altri nome chjamate propiu à l'operatore di cuncorsu per creà connexioni in network TCP / IP.

/ inet / tcp / lport / rhost / rport

Archive per a cunnessione TCP / IP in portuportu locale à rhost host remoto in portu remoto rport . Aduprate un portu di 0 per avè u sistema riceve un portu.

/ inet / udp / lport / rhost / rport

Simile, ma utilizate UDP / IP in duce di TCP / IP.

/ inet / raw / lport / rhost / rport

Riservate per u futuru usu.

Ogni filename speciale furnisce l'accessu à l'infurmazione nantu à u prucessu gawk chì eseguisce. Sò nomene sò prontu. Utilizate a basa PROCINFO per ottene a infurmazione chì furnenu. I filename sò:

/ dev / pid

In legenda stu schedariu torna l'identità di processu di u prucessu attuale, in a decimal, finita cù un novu.

/ dev / ppid

In legenda stu schedariu ponu torna l'identità di processu parente di u prucessu attuale, in a decimal, finita cù un novu.

/ dev / pgrpid

In legenda stu schedariu ponu turnà l'identità di u gruppu di prucessu di u prucessu attuale, in a decimal, finita cù un novu.

/ dev / usu

In legenda stu schedariu vene una sola copia finita cù un novu. I campi sò spartuti da spazi. $ 1 hè u valore di u sistema getuid (2), $ 2 hè u valore di u sistema di geteuid (2), $ 3 hè u valore di u sistema di getgid (2), è $ 4 hè u valore di l' getegid (2) sistema di chjamate. Se ci sò qualsiasi campi supplementu, sò l'ID di u gruppu turnatu da getgroups (2). Diversi gruppi ùn anu micca supportatu in tutti i sistemi.

Funzioni Numerica

AWK hà e seguenti funzioni aritmetichi integrati:

atan2 ( y , x )

Ritorna l'arctangent de y / x in radians.

cos ( expr )

Ritorna u cosine di expr , chì ghjè in radiani.

exp ( expr )

A funzione espunenti.

int ( expr )

Truncates à entero.

log ( expr )

A funzione logaritmale naturali.

rand ()

Ritorna un numaru d'azardu entre 0 è 1.

peccatu ( expr )

Ritorna u sine di expr , chì ghjè in radiani.

sqrt ( expr )

A funzione di e raghjone squadra.

srand ( [ expr ] )

Uss expr as a new seed for the random generator number. Se no expr hè datu, l'ora di u ghjornu hè utilizatu. U valore ritornate hè a fossa prima di u generatore numereali aleatoriu.

Funzioni String

Gawk pussedi i seguenti funzioni stringi integrati:

asort ( s, [ d ] )

Ritorna u nùmeru di elementi in a array s . U cuntenutu s sanu sanu sanu cù i regule normi di Gawk per paragunà i valori, è l'indegni di i valori di s estificati sò rimbursatu cù entero sequenziali chì cumincianu da 1. Se l'arraggine di u destinazione opulente hè specificatu, da sia prima duplicata à d , è dà hè ordenatu da, affinchendu i indegettani di a staghjone generale.

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

Cerca a filetta target per i partiti di l'espressione regular r . Se h hè una string beginning with g or G , da reemplacesi tutti i partiti di r con s . In nozone, h hè un numaru chì indicanu chì match of r per rimpiazzate. Se ùn si hè furnituatu, $ 0 hè utilizzatu invece. À u testu di sustitutu, a secùnea \ n , induve n hè un cifru da u 9 à u 9, pò esse usatu per indicà solu u testu chì hà fattu cù a subexpresionità parèntesi. A secùncia \ 0 ponu esse u testu tutale cumpletu, cum'è u caratteru. A diferenza di sub () è gsub () , a stringi modificata hè stata rimessa da u funziunamentu di a funzione, è a catena urigginaria originale ùn hè cambiatu.

gsub ( r , s [ , t ] )

Per ogni scimintariu chì currisponde à l'espressione regulare in a stringa t , sustituite e stringe, è torna u numeru di sustituzioni. Se tu ùn hè micca furnutu, utilizate $ 0 . Un e in u testu di sustitutu si sustituisci cù u testu chì era realtatu cumbatte. Utilizà \ & per acquistà una literal & . (Questu deve esse scrittu cum'è "\\" ; vede GAWK: Programazione AWK Effective per una discussioni più numerosa di e regule per i " i rivoluziunarii in u testu di sustitutu di sub () , gsub () , è gensub () .)

indice ( s , t )

Rituverna l'indexu di a stringa t in a stringa s , o 0 s'ellu ùn hè micca presente. (Quessu hè chì l'indici di carattere accumincianu à unu).

durata ( [ s ] )

Rindurta a larghezza di a stringa , o a durata di $ 0 s'ellu ùn hè micca furnituatu.

match ( s , r [ , a ] )

Ritorna u postu in s unni l'eserita regulare si trova, o 0 si r ùn hè micca presente, è ponja i valori di RSTART è RLENGTH . Nota chì l'ordine di l'argumintazzioni hè uguali cum'è per l'operatore ~ : str ~ re . Se array a veni pruvucatu, un hè chjarificatu è l'elementi 1 à n estenu chjene di e partioni di s chì currispundenu cù a sperimentazione parentesia in r . L'elementu 0 d' un cuntene a parte di s accurdata da l'espressione regulare r .

split ( s , a [ , r ] )

Divide a stringe in a matrizu una di l'espressione regulare r , è rende u numaru di campi. Se r hè omitted, FS hè inveci. A scelta hè chjara prima. A splitting cumprisa identitariu à a splitting field, described above.

sprintf ( fmt , expr-list )

Prunelli expr-list according to fmt , è rende u stringu resultanti.

strtonum ( str )

Esaminà str , è torna u so numeru valuru. Se str start with a leading 0 , strtonum () assume chì str hè un numaru octale. Se str incù un centru 0x o 0X , strtonum () assume chì str hè un numaru hexadecimale.

sub ( r , s [ , t ] )

Sò cum'è gsub () , ma solu a prime subestazione paralizante hè sustituitu.

substr ( s , i [ , n ] )

Ritorna a più n- sustinzione di i chjassi di i principia à i . Se n s'aveceta, u restu di l'usu si usa.

tolower ( str )

Returns una copia di u stringu str , cù tutti i caratteri maiurunità in str traduciutu à i so contrapartiti di minùscule currispundenti. U caratteristiche alfabetici ùn sò micca cambiatu.

toupper ( str )

Returns una copia di u stringu str , cù tutti i caratteristichi di minùscule in str traduciutu à i so contrapartiti cussidenti custieri. U caratteristiche alfabetici ùn sò micca cambiatu.

Funzioni di u tempu

Siccomu unu di l'usu primariu di i programmi AWK hè a trasfurmazioni di log files that contain time stamp information, gawk prupone e funzioni seguenti per ottimisione stampati è furmatu.

mktime ( dataspec )

Rurns dataspec in un stampu di u tempu di a listessa manera chì si volte da scienze () . I dataspec hè una catena di a forma AAAA MM DD HH MM SS [DST] . U cuntenutu di a catene sò sei o sete numeri chì ripresentanu rispettivi l'annu sanu, cumpresu seculu, u mese da 1 à 12, u ghjornu di u mese da 1 à 31, l'ora di u ghjornu da 0 à 23, u minutu da 0 à 59, è u secondu da 0 à 60 è una bandiera salvatica di u ghjornu opcional. I valori di sti numme ùn devenu micca esse dentro di i rangi specifichi; per esempiu, una ora di -1 significa 1 ora prima a mediani. U calendariu di Gregoriu di orìgine hè assumessu, cù l'annu 0 precedente l'annu 1 è l'annu -1 precedente l'annu 0. U tempu hè presumitu chì hè in a timezone locale. Sì u ghjornu di u storicu di salvezza hè pusitivu, u tempu hè assumessu chì hè u ghjornu di u tempu di salvezza; Sì ci hè cero, u tempu hè assumatu à esse tempus standard; è se u negativu (u default), mktime () prova da determinà se u tempu di salvezza di u ghjornu hè in effetti per u tempu especificatu. Se Dati Specche ùn cuntene elementi prufunniali o se u tempu risultatu hè fora di u largu, mktime () retorna -1.

strftime ( [ format [ , timestamp ]] )

Formatei stampata stampata in cuncepimentu in l'specificazioni in u formatu. U timestamp deve esse di a listessa forma chì si deverà volte di ogni sistema () . Se timestamp manca, l'ora di u ghjornu hè utilizatu. Se elencu si manca, un furmatu predefinitu equivalente à u risultatu di data (1) hè utilizzatu. Vede l'ispecificazioni per a funzione di strftime () in ANSI C per i formazione di cunversione chì sò guarantiti à esse dispunibili. Una versione di public domain di strftime (3) è una pàgina di u manu perchè vene cun gawk ; se a versione era utilizzata per creà gawk , allora e cunversione scritte à a pàgina di u manu sò disponibile per gawk.

systime ()

Ritorna u tempu di u ghjornu cum'è quantità di sicondi da l'Epoch (01/01/1-01 00:00:00 UTC in sistemi POSIX).

Funzioni di Manipulazioni Bit

Aduprà cù a versione 3.1 di gawk , e funzioni di manipulation di l'usu dopu sò dispunibili. U travagliu di cunversione di valuri di punti flotari di prezzi di dati à unchiunziate longu senza firmatu , facennu l'operazione, è dopu cunvertisce u risultatu à u puntu flottante. E funzioni sò:

è ( v1 , v2 )

Riturnà u U bitume di i valori da v1 è v2 .

compl ( val )

Torna u complementu bitume di val .

lshift ( val , count )

Ritorna u valore di val , scumpigatu left by count bits.

o ( v1 , v2 )

U ritornu u U bitume di i valori da v1 è v2 .

rshift ( val , count )

Ritorna u valore di val , scumputu dirittu da i botti di cunti .

xor ( v1 , v2 )

Ritorna u XOR bitumine di i valori da v1 è v2 .

Funzioni di Internaziunalizazione

Aduprà cù a versione 3.1 di gawk , i funzioni siguenti si deve aduprà da u vostru prugramma AWK per traduzzione stringe à u tempu d'esèrcitu. Per più infurmazioni, vedi GAWK: Effective AWK Programming .

bindtextdomain ( directory [ , domini ] )

Specifiesu u guidatu quandu gawk cerca i schedari .mo , in casu ùn anu micca o ùn ponu esse stati nisun'ghjetti "standard" (per esempiu, durante l'esame). Torna l'annuariu induve u duminiu hè "ligatu".

U dumanu predeterminatu hè u valore di TEXTDOMAIN . Se u guidariu hè a stringa nulla ( "" ), allura bindtextuale () rende u vitture attuale per u duminiu datu.

dcgettext ( string [ , duminiu [ , categuria ]] )

Ritorna a traduzzione di string in u duminiu di testu per a categurìa di categurìa locale. U valore predeterminatu per u duminiu hè u valore correnti di TEXTDOMAIN . U valore per a categoria"LC_MESSAGES" .

Se furnite un valore per a categuria , devu esse una stringa à una di e categurie locale detta in GAWK: Aucunia Programma Aucatu . Anu ancu deve furnisce un duminiu di testu. Utilizà TEXTDOMAIN si vuleva usà u duminiu currentu.

dcngettext ( string1 , string2 , number [ , duminiu [ , categuria ]] )

Ritorna a forma pluralu usata per u numeru di a traduzzione di string1 è string2 in u duminiu di testu in a categuria di categurìa locale. U valore predeterminatu per u duminiu hè u valore correnti di TEXTDOMAIN . U valore per a categoria"LC_MESSAGES" .

Se furnite un valore per a categuria , devu esse una stringa à una di e categurie locale detta in GAWK: Aucunia Programma Aucatu . Anu ancu deve furnisce un duminiu di testu. Utilizà TEXTDOMAIN si vuleva usà u duminiu currentu.

FUNCIZI DEFINITURE USERU

Funzioni in AWK sò definiti cum'è seguenti:

nome di funzione ( lista di paràmetri ) { statement }

I funzioni sò esecutati quandu sò chjamati da e so espressioni in u patronu o l'azzioni. U parametri attuale fornitu in a funzione di chjamà si usanu per instantiate i paràmetri formali dichjaratu in a funzione. I rai sò passati per riferimentu, altri variate sò passati da u valore.

Perchè e funzioni ùn sò micca urigginarii parte di l'AUCK, a prestazione per variate lucale hè più bruttu: sò dichjarati cum'è parametri extra in a lista di parametri. A cunvenzione hè di scumparià variate lucale di parametri reale per spazii extra in a lista di parametri. Per esempiu:

funzione f (p, q, a, b) # a e b sò lucali {...} / abc / {...; f (1, 2); ...}

U parèntesi quandu in una funzione chjamata hè necessaria di seguità à seguità u nome di funzione, senza sparte in u spazi biancu. Questu hè per evità una ambigtità sintáctica cù l'operatore di cunfurnazione. Questa restrizzioni ùn hè micca appiicatu à e funzioni integrate listu.

Funzioni pò chjamate l'altri è pò esse recursivu. E paràmetri di funzione utilizati cum'è variate lucali sò iniziati à a filetta nulla è u numiru zero nantu à a invucazione funziona.

Utilizà u ritornu expr to return a valur per una funzione. U valore ritornate hè indefinituse se nisunu valore hè datu, o se a funzione torna da "cede".

Se - lint hè stata provista, gawk aviseghja di i chjassi à funzioni senza definitu in tempu parse, inveci di in tempu d'escezione. Cridar una funzione indefinita in u tempu d'espanzioni hè un fatal error.

A parulla func pò esse usata in u postu di funzione .

CUNDIZIONE DINAMICALLY NEW FUNCTIONS

Cumplementu cù a versione 3.1 di gawk , pudete dinamicu aghjunghje funziunalità integri à l'intèrpretu gawk chì corse. Tutti i detallsi sò quede da u scopu di sta pagina manuale; vede GAWK: Effective AWK Programming for the details.

estensione ( oġġett , funzione )

Viaghja dinamica l'ughjettu di l'ughjettu cumuni cun l' oggettu , è invoca funzione in questu oggettu, per eseguisce l'inizione. Quessi sò duvutu esse furnitu com'è strings. Ritorna u valore ritornu da a funzione .

A questa funzione hè furnita è documentata in GAWK: Aucunitati Programma Aucatu , ma tuttu di questa funzione hè pussibule di cambià in a liberazione successiva. Ùn aghjuntendu bè ragiunate chì ùn avete micca aduprà sta funziona per qualcosa chì ùn site micca disposti à riavverna.

SIGNALS

Pgawk accetta dui signali. SIGUSR1 pruvucarà à dump un profilo è funzione chjamatu stack à u schedariu di u profilo, chì hè o awkprof.out , o qualsìasi architiu deve chjamatu cù l'opzione --profile . Puderete cuntinuà per correr. SIGHUP pruvucarà à dump the profile and function call stack and then exit.

EXAMPLES

Impressate è ordenate i login nome di tutti l'utilizatori: BEGIN {FS = ":"} {print $ 1 | "sort"} Conti liate in un schedariu: {nlines ++} END {print nlines} Precede ogni linea da u so numeru in u schedariu: {print FNR, $ 0} Cuncatenate è numere di linea (una variazione annantu à un tema): {print NR, $ 0}

Internalizazione

E custanti di String sò seconde di caratteri chjusu in dui affari. In ambienti non-angledema, hè pussibile di marche chjassi in u prugramma AWK chì es necessariu di traduzzione in a lingua nativa. Tali filamenti sò marcati in u prugramma AWK cù un underscore ('`_' '). Per esempiu,

gawk 'BEGIN {stampa "hello, mundo"}'

stampatu tutti i saluti, mondu . Ma,

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

puderete stampà bonjour, monde in Francia.

Ci sò parechji passi in a pruduzzione è esse realizatu un programa AWK localizable.

1.

Aggiunce una action BEGIN per assignà un valore à a varieetta di TEXTDOMAIN per definisce el domine di testu in un nome chjamatu cù u vostru prugramma.


BEGIN {TEXTDOMAIN = "myprog"}

Questu permette chì gawk find the .mo file associated with your program. Sì stu passu, Gawk usa i messagiu testu di duminiu, chì probabbilmente ùn cuntene traduzzione per u vostru prugramma.

2.

Marcu tutti i filamenti chì devenu esse traduzzione cù i marcati attitori.

3.

Se necessariu, utilizate a funzione di dcgettext () è / o bindtextuale () in u vostru prugrammu, se appropritu.

4.

Run gawk --gen-po -f myprog.awk> myprog.po per generà un schedariu .po per u vostru prugramma.

5.

Fate traduzzione appropritata, è custruiscenu è installate un schedariu pertinente .mo .

I caratteristiche internaziunismu sò deskritti in più di dettu in GAWK: Effective AWK Programming .

Compatibilité Posis

Un urganu di gawk hè cumpatibilità cù u standard POSIX, è ancu cù l'ultima versione di UNIX awk . À questu ghjornu, Gawk incorpora i seguenti funziunalità visibilizate di u usu chì ùn sò micca spritti in u libru d'AucK, ma sò parti di a versione di Bell Laboratories di awk , è sò in u standard POSIX.

U libru indicatu chì a cunduzione di a varianti di a varianti di linea di cumanda passa quand si speke falla altri l'argumintazzioni cum'è un schedariu, chì hè questu dopu u libru BEGIN hè realizatu. In ogni modu, in l'implementazioni pricidenti, quandu tali assignmentu pareva prima alcuni nomi di scrittori, l'assignazione succidia micca prima di u scuru BEGIN . I appiicalli sò stati cambiati da a so distribuzione, l'applicazione di -v per assignà variàbili prima l'esercitu di u prugramma hè aghjuntu à accoltu applicazioni chì depende di u cumpurtamentu anticu. (Sta funzione hè accunsentuta da i Laboratorii Bell è di i GNU developers).

L' opùra W di funzioni specifici di implementazione hè da u standard POSIX.

Quandu si tratta l'argumenti, Gawk utiliza l'opcione speciali `` - '' per signalà a fine di l'argumenti. In modu di cunghjunta, avvisa, ma altri ùn ignora l'opzioni indefiniti. In u travagliu normale, argumenti tali sò trasmessi à u prugramma AWK per prucessa.

U libru Aucatu ùn manca micca definitu u valore ritornu di srand () . U standard POSIX hà tornatu a sumente chì era utilizzatu, per permetterà seguitu di seguità numereali aleatorii. Per quessa chì a sanda () hè ancu questu a so cumanda.

L'altru novu funziunalità sò: L'utilizazione di l'opere parechji alternati (da MKS awk ); u cummenu ENVIRON ; a \ a , è \ v sequenza di salvezza (fatta originalmente in gawk è alimentata à a versione Bell Laboratories); i funziunalità () è toupper () funzioni integrati (da a versione Bell Laboratories); è l'specificazioni di cunversione ANSI C in printf (fattu prima in a versione Bell Laboratories).

Caratteristiche Storichi

Ci hè parechje caratteristiche di implementazioni storichi di AWK chì Gawk sostene. Prima, hè pussibule chjamate a larga () funziona integrata micca solu cù nisun scopu, ma ancu senza parèntesi! Cusì,

a = lonxitude # Santi Algol 60, Batman!

Hè u stessu o di quarchi

a = lonxitude ()
a = durata ($ 0)

Questa funzione hè marcatu com'è `` deprecated '' in u standard POSIX, è Gawk emette un avvistu annantu à u so usu si --lint hè specificatu nantu à a linea di cummanda.

L'altra funzione hè l'utilizazione di u seguimentu o l'affirmazioni ruru fora di u corpu di un momentu , per , o fate ciclu. L'implementazioni traduttoriali di l'AWK anu trattatu l'usu di l'usu cum'è equivalente à a strada di successu . Gawk sopra stu usage se - tradizionale hè statu specificatu.

Extensions GNU

Gawk pussedi una quantità di prurugazioni à POSIX awk . Sò scritte in questa sezione. Tutte l'estensione scritte da quì pò esse disattivatu invucatu a gawk cù l' opció tradizionale .

E seguenti funziunalità di gawk ùn sò micca dispunibili in POSIX awk .

*

Nisuna ricerca di strada hè realizata per i schedari indicati per l'opzione -f . Per quessa l' aiutu di l' AURICULARO ùn hè micca spiciale.

*

A \ sequenza scaricata di \ x . (Disabled with --posix )

*

A fflush () funzione. (Disabled with --posix )

*

A capacità di cuntinuà e linii dopu ? è :. (Disabled with --posix )

*

Eghjenzi Octal è hexadecimali in i programmi AWK.

*

A varianti ARGIND , BINMODE , ERRNO , LINT , RT è TEXTDOMAIN ùn sò micca spiciale.

*

A variable IGNORECASE è e so effetti sekundarji ùn sò micca dispunibili.

*

A scatula di FIELDWIDTHS variable è di larghezza fissa.

*

L'array PROCINFO ùn hè micca dispunibule.

*

U utilizazione di RS comu espressione regulare.

*

I nomi d'archivi privati ​​dispunibuli per a reurigazione I / O ùn sò micca ricunnisciuti.

*

U operatore per creà co-processi.

*

L'abilità di dividie i caratteri individui cù a stringa null com'è u valore di FS , è cum'è a terza discussione à split () .

*

U second argumentu opcional à a funzione estrema () .

*

A terza autazioni opcional à a funziona () .

*

L'abilità di utilizà specifiers pusizzionali cù printf e sprintf () .

*

L'usu di borra array per sguassà u cuntenutu sanu di un array.

*

L'usu di nextfile per abbandunà u prucessu di u schedariu di l'input current.

*

L' e () , asort () , bindtextomenu () , compl () , dcgettext () , gensub () , lshift () , mktime () , or () , rshift () , strftime () , strtonum () è xor () funzioni.

*

Cordi localizable.

*

Adding new built-in funzioni dinamicamenti cù a funzione d' estensione () .

U libru ACCUPJU ùn define micca u valore ritornu di a funzione estrema () . Gawk 's close () retorna u valore da fclose (3), o pclose (3), quandu chjusu u cartulare di saldatura o a pipe, rispettivament. Torna l'aghjuntu di u statu di u prucessu quandu chjusu un canna d 'input. U valore ritornu hè -1 se u schedariu chjamatu, pipe o co-processu ùn hè statu apertu cun reurientazione.

Quandu invucatu a gawk cù l' opció tradizionale , se l'argumentu fs a l'option F è "` t '', allura FS hè settore à u caratteru tabulazione. Scorciate chì sgrossinu à gawk -F \ t ... simplici causate l'intesa di citarse u cidificatu, è ùn ùn passà `` \ t '' à l'opzione F. Cumu hè un casu specialu abbastanza locu, ùn hè micca u cumpurtamentu predettu. Stu cumpurtamentu ùn si trovi si --posix hè statu specificatu. Per fà veramente un carattere di tabulazione cum'è u separatore di u campu, hè megliu d'utilizà un quota sèghinu : gawk -F '\ t' ....

Vede altre cumanda : wait , lp , complete , execv , getfacl , ioctl , uniq , rmmod , pvcreate , rsh , unix2dos , cal , fs , cd , iwpriv , swapon , autofs , talk , motd , free , lpr , execl , fdisk , à , quale , iwconfig , ifconfig , vgdisplay , apertu , lsmod , ntohs , mailq , kill , wtmp