Вывучаюць каманды Linux - падзівіцца

імя

паглядзець - сканаванне малюнка і мовы апрацоўкі

канспект

паглядзець [POSIX або GNU опцыі стылю] -f праграма-файл [-] файл ...
паглядзець [POSIX або GNU опцыі стылю] [-] Праграма-тэкставы файл ...

pgawk [POSIX або GNU опцыі стылю] -f праграма-файл [-] файл ...
pgawk [POSIX або опцыі ў стылі GNU] [-] праграма-тэкставы файл ...

апісанне

Gawk гэта ў GNU рэалізацыі праекта мовы праграмавання AWK. Гэта адпавядае вызначэнню мовы ў POSIX 1003.2 Command Language і Utilities Standard. Гэтая версія у сваю чаргу грунтуецца на апісанні ў AWK мовы праграмавання, з дапамогай Ахо, Kernighan і Вайнбергером, з дадатковымі функцыямі , знойдзенымі ў версіі System V Release 4 UNIX AWK. Gawk таксама больш позняга Bell Laboratories AWK пашырэння і шэраг GNU-канкрэтных пашырэнняў.

Pgawk гэта профільная версія прасцяка. Яна ідэнтычная ва ўсіх адносінах , каб паглядзець, за выключэннем таго, што праграмы працуюць павольней, і ён аўтаматычна стварае профіль выканання ў файле awkprof.out калі зроблена. См --profile опцыю ніжэй.

Камандны радок складаецца з опцый , каб паглядзець сябе, тэкст праграмы AWK (калі не ўваходзіць у камплект з дапамогай опцыі -f або --file опцый), і значэння , якія будуць даступныя ў ARGC і ARGV загадзя вызначаных зменных AWK.

опцыя Format

Варыянты паглядзець могуць быць як традыцыйныя POSIX аднаго варыянту ліста, або GNU стыль доўгіх опцый. Опцыі POSIX пачынаюцца з аднаго `` - «», а доўгія опцыі пачынаюцца з `` - «». Доўгія опцыі прадугледжаны як для GNU-спецыфічных асаблівасцяў і POSIX санкцыянаваных функцый.

Паводле стандарту POSIX, паглядзець -специфические варыянты пастаўляюцца праз аргументы на -W варыянт. Некалькі варыянтаў -W могуць быць пастаўлены Кожны -W варыянт мае адпаведны доўгі варыянт, як апісана ніжэй. Аргументы доўгіх опцый, альбо разам з параметрам па апу = знак, без прабелаў, або яны могуць быць прадстаўлены ў наступным аргуменце каманднага радка. Доўгія варыянты могуць быць скарочаныя, пакуль скарачэнне застаецца унікальным.

опцыі

Gawk прымае наступныя параметры, пералічаныя ў алфавітным парадку.

-F ФС

--field-падзельнікаў ФС Выкарыстоўвайце ФС для поля ўводу падзельніка (значэнне наканаваных зменнай FS).

-v пераменная = значэнне

--присваивание assign вар = значэнне Прысвоіць значэнне Вэл зменнай Var, да пачатку выканання праграмы. Такія значэнні даступныя для Бегін блока праграмы AWK.

-f праграма-файл

--file праграма-файл Прачытайце зыходны код праграмы AWK з файла праграма-файл, а ня з першага аргументу каманднага радка. Можа выкарыстоўвацца Multiple -f (або --file) варыянты.

-mf NNN

-mr NNN Усталяваць розныя абмежаванні памяці для значэння NNN. Сцяга F ўсталёўвае максімальную колькасць палёў, а сцяг г ўсталёўвае максімальны памер запісу. Гэтыя два сцягі і опцыі -m ўзятыя з даследчай версіі Bell Laboratories ў UNIX AWK. Яны ігнаруюцца прасцяка, так як прасцяк не мае загадзя вызначаныя межы.

-W Compat

-W традыцыйны

--compat

--traditional Run ў рэжыме сумяшчальнасці. У рэжыме сумяшчальнасці, паглядзець паводзіць сябе ідэнтычна UNIX AWK; ні адзін з GNU-канкрэтных пашырэньні не распазнаюцца. Выкарыстанне --traditional з'яўляецца пераважнай па параўнанні з іншымі формамі гэтага варыянту. Глядзіце GNU ПАШЫРЭННЕ, ніжэй, для атрымання дадатковай інфармацыі.

-W Копілэфт

-W аўтарскіх правоў

--copyleft

--copyright Вывесці кароткую версію інфармацыі аб аўтарскіх правах паведамлення GNU на стандартны вывад і паспяхова завяршыцца.

-W дамп-зменныя [= файл]

--dump-зменныя [= файл] Вывесці адсартаваны спіс глабальных зменных, іх тыпаў і канчатковых значэнняў у файл. Калі файл не пазначаны, прасцяк выкарыстоўвае файл з імем awkvars.out ў бягучым каталогу.

Маючы спіс усіх глабальных зменных з'яўляецца добрым спосабам для пошуку памылак друку ў вашых праграмах. Вы можаце таксама выкарыстоўваць гэты варыянт, калі ў вас ёсць вялікая праграма з вялікай колькасцю функцый, і вы хочаце быць упэўнены, што вашыя функцыі выпадкова не выкарыстоўваць глабальныя зменныя, якія вы мелі на ўвазе, каб быць лакальным. (Гэта асабліва лёгка зрабіць памылку з простымі імёнамі зменных , як I, J, і гэтак далей.)

-W дапамогу

-W выкарыстання

--help

--usage Друк адносна кароткае апісанне даступных опцый на стандартны вывад. ( У адпаведнасці з GNU Coding Standards, гэтыя опцыі прыводзяць да неадкладнага нармальнаму выхаду.)

-W ворса [= са смяротным зыходам]

--lint [= фатальныя] Прадастаўляць папярэджання аб канструкцыях, якія сумніўныя або непераноснасць для otherAWK рэалізацыі. З дадатковым аргументам са смяротным зыходам, пух папярэджання становяцца фатальнымі памылкамі. Гэта можа быць рэзкім, але яго выкарыстанне будзе, безумоўна, спрыяць развіццю экалагічна чыстых праграм AWK.

-W ворса стары

--lint даўнасці Прадастаўляць папярэджання аб канструкцыях, якія ня можна перанесці да арыгінальнай версіі Unix AWK.

-W ген-ро

--gen-ро сканавання і аналізаваць праграмы AWK, і генераваць GNU .po фармат файла на стандартны вывад з запісамі для ўсіх лякалізуюцца радкоў у праграме. Сама праграма не выконваецца. Глядзіце размеркаванне GetText GNU для атрымання дадатковай інфармацыі аб файлах .po.

-W недесятичных-дадзеныя

--non-дзесятковыя-дадзеныя Прызнаць васьмярковай і шаснаццатковае значэнне ва ўваходных дадзеных. Выкарыстоўвайце гэтую опцыю з вялікай асцярожнасцю!

-W POSIX

--posix Уключае рэжым сумяшчальнасці з наступнымі дадатковымі абмежаваннямі:

*

\ Х экрануе паслядоўнасці не распазнаюцца.

*

Толькі прастора і ўкладка выступаюць у якасці падзельнікаў палёў , калі FS ўстаноўлена ў адзіную прастору, сімвал новага радка ня робіць.

*

Вы не можаце працягваць лініі пасля? і :.

*

Сінонім FUNC для функцыі ключавога слова не распазнаюцца.

*

Аператары ** і ** = не могуць быць выкарыстаны замест ^ і ^ =.

*

Функцыя fflush () не даступная.

-W профіль [= prof_file]

--profile [= prof_file] слаць гэтыя прафілявання для prof_file. Па змаўчанні awkprof.out. Пры запуску з прасцяком, профіль проста `` даволі раздрукавана «» версія праграмы. Пры запуску з pgawk, профіль ўтрымлівае лічыльнікі выканання кожнага сцвярджэння ў праграме ў левым полі і выклік функцыі падліку для кожнай функцыі , вызначанага карыстальніка.

-W паўторна інтэрвал

--re інтэрвал Уключыць выкарыстанне інтэрвальныя выразаў у рэгулярных выразах (гл рэгулярных выразаў, ніжэй). Інтэрвальныя выразы традыцыйна не даступныя на мове AWK. Стандарт POSIX дадаў іх, каб зрабіць AWK і задаць пашыранае сумяшчальныя адзін з адным. Аднак іх выкарыстанне можа парушыць старыя праграмы AWK, так паглядзець толькі забяспечвае іх , калі яны запытваюцца з гэтай опцыяй, ці калі --posix паказана.

-W зыходны код праграмы-тэкст

--source праграмны тэкст Выкарыстоўваць праграмны тэкст як зыходны тэкст праграмы AWK кода. Гэтая опцыя дазваляе лёгка перамешванне функцый бібліятэкі (выкарыстоўваецца з дапамогай опцыі -f і --file) з зыходным кодам уведзенага ў камандным радку. Ён прызначаны ў першую чаргу для сярэдніх і буйных праграм AWK, якія выкарыстоўваюцца ў сцэнарах абалонкі.

-W версія

--version Выдаць інфармацыю аб версіі для дадзенай канкрэтнай копіі прасцяка на стандартны вывад. Гэта карысна ў асноўным для ведаючы , калі бягучая копія прасцяка на вашай сістэме да цяперашняга часу ў дачыненні да да таго , што Фонд вольнага праграмнага забеспячэння размяркоўваючы. Гэта таксама карысна пры складанні справаздач аб памылках. ( У адпаведнасці з GNU Coding Standards, гэтыя опцыі прыводзяць да неадкладнага нармальнаму выхаду.)

- Сігнал заканчэння опцый. Гэта карысна, каб далейшыя аргументы самой праграмы AWK, каб пачаць з `` - «». Гэта, галоўным чынам, для забеспячэння ўзгодненасці з Канвенцыяй аргумент сінтаксічнага аналізу, якая выкарыстоўваецца большасцю іншых праграм POSIX.

У рэжыме сумяшчальнасці, любыя іншыя варыянты пазначаныя як несапраўдныя, але ігнаруюцца. У нармальным рэжыме працы, да тых часоў , як тэкст праграмы пастаўляліся, невядомыя параметры перадаюцца праграме AWK ў масіве ARGV для апрацоўкі. Гэта асабліва карысна для запуску праграм AWK праз `` #! "» Выкананы механізм інтэрпрэтатара.

AWK ВЫКАНАННЕ ПРАГРАМЫ

Праграмы AWK складаецца з паслядоўнасці аператараў шаблон-дзеянне і неабавязковых азначэнняў функцый.

шаблон {дзеянне} выказванні

Імя функцыі (спіс параметраў) {аператары}

Gawk першым чытае зыходны код праграмы з праграмы-файл (ов) , калі паказана, з аргументаў --source, або ад першага , якi не з'яўляецца параметру аргументу у камандным радку. -f і --source опцыі могуць быць выкарыстаны некалькі разоў у камандным радку. Gawk чытае тэкст праграмы , як калі б усе зыходныя тэксты праграмы-файлы з камандным радком і былі аб'яднаны разам. Гэта карысна для пабудовы бібліятэк функцый AWK, без неабходнасці ўключэння іх у кожнай новай праграме AWK, якая выкарыстоўвае іх. Ён таксама дае магчымасць змешваць функцыі бібліятэкі з праграмамі каманднага радка.

Пераменная AWKPATH асяроддзя вызначае шлях пошуку, які выкарыстоўваецца пры пошуку зыходных файлаў , паказаных з параметрам -f. Калі гэтая пераменная не існуе, шлях па змаўчанні «: / USR / мясцовыя / долі / AWK». (Фактычны каталог можа вар'іравацца, у залежнасці ад таго, як быў пабудаваны і ўсталяваны прасцяк.) Калі імя файла , названага ў опцыі -f ўтрымлівае `` / "» характар, шлях пошуку не выконваецца.

Gawk выконвае праграмы AWK ў наступным парадку. Ва- першае, усе зменныя заданні , названыя з дапамогай опцыі -v выконваюцца. Далей, прасцяк кампілюе праграму ва ўнутраную форму. Затым прасцяк выконвае код у Бегін блока (ов) (калі такія маюцца), а затым пераходзіць да чытання кожны файл , названы ў масіве ARGV. Калі няма файлаў з імем у камандным радку, прасцяк чытае стандартны ўвод.

Калі імя файла ў камандным радку мае выгляд вар = значэнне ён разглядаецца як прысвойванне зменнай. Пераменная вар будзе прысвоена значэнне Вале. (Гэта адбываецца пасля таго, як любы ПАЧАЦЬ блок () працавалі.) Камандны радок прысваенне зменнай з'яўляецца найбольш карысным для дынамічнага прысваення значэнняў пераменным AWK выкарыстоўвае для кіравання ўводу разбіваецца на палі і запісы. Гэта таксама карысна для кантролю стану, калі патрабуецца больш за адзін файл дадзеных.

Калі значэнне канкрэтнага элемента ARGV пуста ( «»), паглядзець прапускае яго.

Для кожнага запісу на ўваходзе, паглядзець тэсты , каб убачыць , калі ён адпавядае любому шаблоне у праграме AWK. Для кожнага шаблону , які адпавядае запісу, звязаны з ім дзеянне выконваецца. Узоры выпрабоўваюцца ў парадку іх з'яўлення ў праграме.

Нарэшце, пасля таго, як усе ўваходныя будзе вычарпаны, Gawk выконвае код у канцы блока (ов) (калі такія маюцца).

Зменныя, запісы і палі

AWK зменныя з'яўляюцца дынамічнымі; яны прыходзяць у існаванне, калі яны ўпершыню выкарыстоўваюцца. Іх значэння могуць быць колькасці з якая плавае кропкай або радкі, або абодва, у залежнасці ад таго, як яны выкарыстоўваюцца. AWK таксама мае аднамерныя масівы; масівы з некалькімі памерамі могуць быць змадэляваныя. Некалькі вызначаных зменных ўсталёўваюцца як праграма працуе; яны будуць апісаны па меры неабходнасці і коратка выкладзены ніжэй.

дакументацыя

Звычайна запісу падзяляюцца знакамі новага радка. Вы можаце кантраляваць тое, як запісы падзяляюцца шляхам прысваення значэння для ўбудаваных зменных RS. Калі RS гэта любы адзіночны сімвал, гэты сімвал падзяляе запіс. У адваротным выпадку, RS з'яўляецца рэгулярным выразам. Тэкст на ўваходзе, які адпавядае гэтаму рэгулярнаму выразу аддзяляе запіс. Тым не менш, у рэжыме сумяшчальнасці, толькі першы сімвал яго радковае значэнне выкарыстоўваецца для падзелу запісаў. Калі RS усталёўваецца пусты радок, то запісу падзяляюцца пустымі радкамі. Калі RS усталёўваецца пусты радок, сімвал новага радка заўсёды дзейнічае як падзельнік палёў, у дадатак да любога значэнні FS можа мець.

поля

Паколькі кожны ўваходных запісу счытваецца, Gawk падзяляе запісу на палі, выкарыстоўваючы значэнне зменнай FS ў якасці падзельніка. Калі ФС адзін знак, то поля падзяляюцца гэтым сімвалам. Калі FS ёсць пусты радок, то кожны асобны знак становіцца асобным полем. У адваротным выпадку, FS , як чакаецца, будзе поўнае рэгулярны выраз. У прыватным выпадку, калі FS ёсць адзін прабел, поля падзяляюцца групамі прабелаў і / або ўкладак і / або сімваламі новага радка. (Але глядзіце абмеркаванне --posix ніжэй). Заўвага: Значэнне IGNORECASE (глядзі ніжэй) таксама ўплывае на поля развяліся , калі FS з'яўляецца рэгулярным выразам, і як запісы падзяляюцца , калі RS з'яўляецца рэгулярным выразам.

Калі зменная FIELDWIDTHS ўстаноўлена ў спіс падзеленых прабеламі лікаў, кожнае поле , як чакаецца, маюць фіксаваную шырыню, і Gawk распадаецца запіс , выкарыстоўваючы названыя шырыні. Значэнне FS ігнаруецца. Прысваенне новага значэння FS адмяняе выкарыстанне FIELDWIDTHS і аднаўляе паводзіны па змаўчанні.

Кожнае поле ўваходных запісу можна спасылацца на яго пазіцыі, $ 1, $ 2, і гэтак далей. $ 0 цэлая запіс. Поля не павінны спасылацца на канстанты:

п = 5
друк $ п

друкуе пятае поле ва ўваходны запісы.

Пераменная NF усталёўваецца на агульная колькасць палёў ўваходных запісу.

Спасылкі на неіснуючыя поля (г.зн. поля пасьля $ NF) вырабляюць нуль-радок. Аднак, прысвойванне неіснуючага полі (напрыклад, $ (NF + 2) = 5) павялічвае значэнне NF, стварае ўсе прамежкавыя поля з пустым радком у якасці іх значэння, і выклікае значэнне $ 0 , каб быць пералічаныя з поля аддзеленыя адзін ад аднаго значэннем OFS. Спасылкі на адмоўныя пронумерованные поля выклікаюць фатальную памылку. Памяншэння NF выклікае значэння палёў з новым значэннем, будуць страчаныя, а значэнне $ 0 , каб быць пералічаныя, з палямі, падзеленымі значэннем OFS.

Прысваенне значэння існуючага поля выклікае ўсё запісы павінны быць адноўлены , калі $ 0 спасылаюцца. Дакладна так жа, прысвоіць значэнне $ 0 прыводзіць да таго , запіс будзе перерасщепление, ствараючы новыя значэння для палёў.

убудаваныя зменныя

Убудаваныя зменныя паглядзець «s з'яўляюцца:

ARGC

Колькасць аргументаў каманднага радка (не ўключае ў сябе опцыю , каб паглядзець, ці зыходны код праграмы).

ARGIND

Індэкс у ARGV бягучага апрацоўванага файла.

ARGV

Масіў аргументаў каманднага радка. Масіў індэксуецца ад 0 да ARGC - 1. Дынамічная змена змесціва ARGV можа кантраляваць файлы , якія выкарыстоўваюцца для дадзеных.

BINMODE

У сістэмах без POSIX, вызначае выкарыстанне `` рэжыме бінарнага «» для ўсіх файлаў ўводу / высновы. Лікавыя значэння 1, 2, ці 3, пазначыць, што ўваходныя файлы, выходныя файлы, або ўсе файлы, адпаведна, павінны выкарыстоўваць бінарны ўвод / выснова. Значэння радкі з «г», ці «ж» пазначыць , што ўвод файлы або файлы выснову, адпаведна, павінны выкарыстоўваць бінарны ўвод / выснова. Радковыя значэння з «RW» або «Сога» пазначыць , што ўсе файлы павінны выкарыстоўваць бінарны ўвод / выснова. Любое іншае значэнне радкі разглядаецца як «RW», але генеруе папераджальнае паведамленне.

CONVFMT

Фармат пераўтварэнні для лікаў, «% .6g», па змаўчанні.

ЭНВАЙРОН

Масіў, які змяшчае значэння бягучай асяроддзя. Масіў індэксуецца зменных асяроддзі, кожны элемент мае значэнне гэтай зменнай (напрыклад, ENVIRON [ «HOME»] можа быць / дома / Arnold). Змяненне гэтага масіва не ўплывае на асяроддзе , бачныя праграмамі , якія паглядзець ікру праз перанакіраванне або сістэмную функцыю ().

ERRNO

Калі памылка сістэмы адбываецца альбо пры перанакіраванні для GetLine, падчас чытання для GetLine, або падчас закрыцця (), то ERRNO будзе ўтрымліваць радок , якая апісвае памылку. Значэнне падлягае пераводу ў неанглийских месцах.

FIELDWIDTHS

Белы-спіс падзеленых прабеламі FIELDWIDTHS. Калі ўстаноўлена, Gawk аналізуе ўваходныя дадзеныя на палі фіксаванай шырыні, замест таго , выкарыстоўваючы значэнне зменнай FS ў якасці падзельніка.

ІМЯ ФАЙЛА

Імя бягучага ўваходнага файла. Калі файлы не пазначаны ў камандным радку, то значэнне FILENAME роўна `` - «». Тым ня менш, імя_файла не вызначаны ўнутры блока BEGIN , (калі не ўстаноўлены GetLine).

FNR

Ўваходных нумар запісу ў бягучым ўваходным файле.

FS

Поле ўводу падзельнік, па змаўчанні прабел. См Палі, вышэй.

IGNORECASE

Кіруе рэгістру ўсіх рэгулярных выразаў і радковых аперацый. Калі IGNORECASE мае ненулявое значэнне, то параўнанне радкоў і супастаўленне з узорам у правілах, поле расшчаплення з FS, запіс , якая адлучае з RS, рэгулярныя выразы з ~ і! ~, А gensub (), GSUB (), індэкс () , матч (), спліт (), і да поўдня () убудаваныя функцыі ўсе ігнараваць рэгістр пры выкананні рэгулярных аперацый выразаў. Заўвага: Array індэксаванне не ўплывае, ні функцыя asort ().

Такім чынам, калі IGNORECASE ня роўны нулю, / ав / супадае са ўсімі радкамі "абса", "ав", "Ab" і "AB". Як і ў выпадку ўсіх зменных AWK, пачатковае значэнне IGNORECASE роўна нулю, так што ўсе рэгулярныя выразы і радковыя аперацыі , як правіла , адчувальны да рэгістра. Пад Unix, поўны ISO 8859-1 Latin-1 набор сімвалаў выкарыстоўваюцца пры ігнараванні выпадку.

LINT

Забяспечвае дынамічнае кіраванне --lint опцыі з рамак праграмы AWK. Калі праўда, паглядзець папярэджанне друкуе пух. Калі хлусня, гэта не так. Калі прысвойваюцца радковае значэнне «фатальным», пух папярэджання становяцца фатальнымі памылкамі, гэтак жа , як --lint = са смяротным зыходам. Любое іншае праўдзівае значэнне толькі выводзіць папярэджання.

NF

Колькасць палёў у бягучай уваходнай запісу.

NR

Агульная колькасць ўваходных запісаў, выяўленых да гэтага часу.

OFMT

Выхадны фармат для лікаў, «% .6g», па змаўчанні.

OFS

Выхадны падзельнік палёў, па змаўчанні прабел.

ORS

Выхадны падзельнік запісаў, па змаўчанні сімвал новага радка.

PROCINFO

Элементы гэтага масіва прадастаўляюць доступ да інфармацыі аб якая працуе праграме AWK. У некаторых сістэмах, могуць быць элементы ў масіве, «group1» праз «групы для некаторага п, што колькасць дадатковых груп , што працэс. Выкарыстоўвайце ў аператары для праверкі гэтых элементаў. Наступныя элементы гарантавана будуць даступныя:

PROCINFO [ "EGID"]

значэнне getegid (2) сістэмнага выкліку.

PROCINFO [ "EUID"]

значэнне geteuid (2) сістэмнага выкліку.

PROCINFO [ "FS"]

«FS» , калі поле раскладання з FS, па сутнасці, або «FIELDWIDTHS» , калі поле раскладання з FIELDWIDTHS дзейнічае.

PROCINFO [ "гід"]

значэнне getgid (2) сістэмнага выкліку.

PROCINFO [ "pgrpid"]

працэс групавой ідэнтыфікатар бягучага працэсу.

PROCINFO [ "PID"]

працэс ідэнтыфікатар бягучага працэсу.

PROCINFO [ "PPID"]

бацькоўскі ідэнтыфікатар працэсу бягучага працэсу.

PROCINFO [ "UID"]

значэнне getuid (2) сістэмнага выкліку.

RS

Падзельнік ўваходных запісаў, па змаўчанні сімвал новага радка.

RT

Запіс тэрмінатар. Gawk ўсталёўвае RT на ўваходных тэкст, адпаведны знак ці рэгулярны выраз , зададзенае з дапамогай RS.

RSTART

Індэкс першага знака знойдзенага матчу (); ня 0, калі супадзенне. (Гэта азначае, што індэксы сімвалаў пачынаюцца ў адзін.)

RLENGTH

Даўжыня радка , супала з матчам (); -1, калі не матч.

SUBSEP

Сімвал , які выкарыстоўваецца для падзелу некалькіх індэксаў у элементах масіваў, па змаўчанні «\ 034».

даменныя

Тэкст вобласць праграмы AWK; выкарыстоўваецца, каб знайсці лакалізаваныя пераклады радкоў праграмы.

масівы

Масівы індэксуюцца з выразам ў квадратных дужках ([і]). Калі выраз з'яўляецца спіс выразы (выраз, выраз ...) , то ніжнім індэкс масіва з'яўляецца радком , якая складаецца з канкатэнацыі значэння (радкі) кожнае выразы, падзеленага значэннем зменнай SUBSEP. Гэты аб'ект выкарыстоўваецца для імітацыі множання, памеры якіх масівы. Напрыклад:

я = "А"; J = "В"; да = «З»
х [I, J, K] = "прывітанне, свет \ п"

прысвойвае радок «Прывітанне, свет \ п» да элемента масіва х, індэксуецца па радку «A \ 034B \ 034C». Усе масівы ў AWK з'яўляюцца асацыятыўнымі, г.зн. індэксуюцца радковымі значэннямі.

Спецыяльны аператар у можа быць выкарыстаны ў выпадку , або ў той час як заяву , каб убачыць , калі масіў мае індэкс , які складаецца з вызначанага значэння.

калі (значэнне ў масіве) друку масіў [Val]

Калі масіў мае некалькі індэксаў, выкарыстанне (I, J) у масіве.

У канструкцыі таксама могуць быць выкарыстаны ў цыкле для перабору ўсіх элементаў масіва.

Элемент можа быць выдалены з масіва , выкарыстоўваючы ВЕЬЕТЕ. ВЕЬЕТЕ таксама можа быць выкарыстаны для выдалення ўсяго змесціва масіва, проста паказаўшы імя масіва без азначніка.

Тыпы зменных і пераўтварэнні

Зменныя і палі могуць быць (з якая плавае коскі) лікаў ці радкоў, ці абодвух. Як значэнне зменнай інтэрпрэтуецца, залежыць ад кантэксту. Калі выкарыстоўваецца ў лікавым выразе, яно будзе разглядацца як лік, калі выкарыстоўваецца ў якасці радкі яна будзе разглядацца як радок.

Каб прымусіць зменную варта разглядаць як лік, дадаць 0 да яго; каб прымусіць яго разглядаць як радок, сашчапіць яго з пустым радком.

Калі радок павінна быць ператворана ў лік, пераўтварэнне выконваецца з выкарыстаннем strtod (3). Шэраг пераўтворыцца ў радок, выкарыстоўваючы значэнне CONVFMT ў якасці радкі фармату для Sprintf (3), з лічбавым значэннем зменнай у якасці аргументу. Аднак, нягледзячы на тое, што ўсе лікі ў AWK з'яўляюцца лікамі з якая плавае коскі, цэлыя значэння заўсёды пераўтворацца як цэлыя лікі. Такім чынам, улічваючы

CONVFMT = "% 2.2f" а = 12 B = A ""

пераменная Ь мае радковае значэнне «12» , а не «12.00».

Gawk выконвае параўнання наступным чынам : Калі дзве зменныя з'яўляюцца лікамі, то яны параўноўваюцца колькасна. Калі адно значэнне з'яўляецца лічбавым, а другі мае радковае значэнне, якое з'яўляецца `` лікавы радком, «», то параўнанне таксама выконваюцца колькасна. У адваротным выпадку, лікавае значэнне пераўтворыцца ў радок і параўнанне радкоў выконваецца. Два радкі параўноўваюцца, вядома ж, як радка. Звярніце ўвагу, што стандарт POSIX прымяняе канцэпцыю `` лікавы запісы з "» ўсюды, нават радковыя канстанты. Аднак, гэта відавочна няправільна, і прасцяк не робіць гэтага. (На шчасце, гэта выпраўлена ў наступнай версіі стандарту.)

Звярніце ўвагу , што радковыя канстанты, такія як «57», а ня лікавыя радкі, яны з'яўляюцца радковымі канстантамі. Ідэя `` лікавы запісы з "» ужываецца толькі да палёў, GetLine ўваходу, FILENAME, ARGV элементам, акружаць элементы і элементам масіва , створаных раскол () , якія з'яўляюцца лікавымі радкамі. Асноўная ідэя заключаецца ў тым, што карыстацкі ўвод, і толькі карыстацкі ўвод, які выглядае лікавым, варта разглядаць такім чынам.

Неинициализированные зменныя маюць лікавае значэнне 0 і радковае значэнне «» (нулявая ці пустая, радок).

Васьмярковай і шаснаццатковай канстанты

Пачынаючы з версіі 3.1 прасцяка, вы можаце выкарыстоўваць васьмярковай C-стылю і шаснаццаткавыя канстанты ў вашым AWK зыходнага кода праграмы. Напрыклад, васьмярковай значэнне 011 роўна дзесятковы 9 і шаснаццатковае значэнне 0x11 роўна дзесятковы 17.

радковыя канстанты

Радковыя канстанты ў AWK з'яўляюцца паслядоўнасці сімвалаў , зняволеныя ў двайныя двукоссі ( ") У радках, некаторыя кіраўнікі паслядоўнасці распазнаюцца, як у C. Гэта .:

\\

Літаральны зваротны слеш.

\ а

`` Папярэджанне «» характар; звычайна ASCII BEL характар.

\ б

Забой.

\ е

Форма карміць.

\ п

сімвал новага радка.

\ г

зварот карэткі.

\ т

гарызантальная ўкладка.

\ v

Вертыкальная ўкладка.

\ Х шаснаццаткавыя лічбы

Сімвал , прадстаўлены радком шаснаццатковых лічбаў пасля \ х. Як і ў ANSIC, усе наступныя шаснаццаткавыя лічбы разглядаюцца як частка паслядоўнасці. (Гэтая функцыя павінна распавесці нам аб распрацоўцы мовы камітэтам.) , Напрыклад, «\ x1B» з'яўляецца ASCIIESC (уцёкі) характар.

\ ДДД

Знак, прадстаўлены ў 1-, 2- ці 3-значнага паслядоўнасці васьмярковых лічбаў. Напрыклад, "\ 033" з'яўляецца сімвалам ASCII ESC (уцёкі) характар.

\ с

Літару с.

Гэтыя кіраўнікі паслядоўнасці таксама могуць быць выкарыстаны ўнутры пастаянных рэгулярных выразаў (напрыклад, / [\ т \ е \ п \ г \ V] / адпавядае пробельные знакі).

У рэжыме сумяшчальнасці, сімвалы, прадстаўленыя васьмярковай і шаснаццаткавыя паслядоўнасці разглядаюцца літаральна пры выкарыстанні ў звычайных канстантах экспрэсіі. Такім чынам, / а \ 52b / эквівалентна / а \ * Ь /.

Шаблоны і дзеянні

AWK з'яўляецца лінія-арыентаваная мова. Ўзор прыходзіць першым, а затым дзеянне. Аператары дзеянні заключаюцца ў {і}. Альбо шаблон можа адсутнічаць, або дзеянне можа адсутнічаць, але, вядома, не так. Калі шаблон адсутнічае, дзеянне выконваецца для кожнай запісы ўваходных дадзеных. Адсутнасць дзеянні эквівалентна

{Друк}

які друкуе ўсю запіс.

Каментары пачынаюцца з `` # «» характар ​​і працягваюцца да канца радка. Пустыя радкі могуць быць выкарыстаны для падзелу аператараў. Звычайна аператар сканчаецца сімвалам новага радка, аднак, гэта не так у выпадку радкоў , якія заканчваюцца на ``, «», {,? ,:, && або || , Лініі , якія сканчаюцца зрабіць альбо таксама іх заявы аўтаматычна працягваецца на наступным радку. У іншых выпадках радок можа быць працягнутая, скончыўшы яго з », у гэтым выпадку сімвал новага радка будзе праігнараваны.

Некалькі аператараў могуць паставіць на адну лінію, падзяляючы іх сімвалам ``; «». Гэта ставіцца як да аператараў ўнутры дзеянні пары шаблон-дзеянне (звычайны выпадак), а таксама да саміх шаблон-дзеянне.

Шаблоны

шаблоны AWK можа быць адзін з наступных:

ПАЧАЦЬ END / рэгулярны выраз / рэляцыйную патэрн экспрэсіі && шаблон шаблон || шаблон шаблон? шаблон: шаблон (шаблон)! карціны pattern1, шаблон2

Пачынайце і сканчайце два спецыяльных выгляду мадэляў , якія не правераныя на ўваход. Часткі дзеянні ўсіх ПАЧАЦЬ структуры аб'ядноўваюцца , як быццам ўсе аператары былі напісаны ў адным блоку BEGIN , . Яны выконваюцца да чытання ўводу. Аналагічным чынам , усе блокі END аб'ядноўваюцца, і выконваецца , калі ўсе ўваходныя знясілены (ці калі выконваецца выхад заява). ПАЧАЦЬ і шаблоны END не могуць быць аб'яднаны з іншымі шаблонамі ў шаблоне выразаў. ПАЧАЦЬ і шаблоны END не могуць быць адсутнічаюць часткі дзеянняў.

Для / рэгулярных выразаў / шаблонаў, звязаны з ім аператар выконваецца для кожнай уваходнай запісу , якая адпавядае рэгулярнаму выразу. Рэгулярныя выразы з'яўляюцца такімі ж , як у задаць пашыраны (1), і коратка выкладзены ніжэй.

Рэляцыйнае выраз можа выкарыстоўваць любога з аператараў , вызначаных ніжэй у раздзеле аб дзеяннях. Яны, як правіла праверыць, ці адпавядаюць пэўныя рэгулярныя выразы пэўных палёў.

&&, || І! аператары лагічныя І, лагічныя АБО, НЕ і лагічныя, адпаведна, як у C. Яны робяць ацэнку кароткага замыкання, таксама як і ў C, і выкарыстоўваюцца для камбінавання выразаў-узораў. Як і ў большасці моў, дужкі могуць быць выкарыстаны для змянення парадку ацэнкі.

: Аператар падобны на той жа аператар у C. Калі першы шаблон дакладна , то шаблон выкарыстоўваецца для тэставання з'яўляецца другім шаблонам, у адваротным выпадку ён з'яўляецца трэцім. Толькі адна з другой і трэцяй мадэляў ацэньваецца.

Pattern1, шаблон2 форма выразы называецца дыяпазон мадэлі. Ён адпавядае ўсёй уваходнай запісу , пачынаючы з запісам , якая адпавядае ўзору pattern1, і працягваюцца да запісу , якая адпавядае pattern2 ўключна. Гэта не спалучаецца з любым іншым выглядам выразы вобразаў.

рэгулярныя выразы

Рэгулярныя выразы пашыранага выгляду знойдзены ў задаць пашыраныя . Яны складаюцца з сімвалаў наступным чынам:

з

адпавядае не-метасімвалы гр.

\ с

адпавядае знаку с.

,

адпавядае любому знаку , уключаючы сімвал новага радка.

^

адпавядае пачатку радка.

$

адпавядае канца радка.

...]

спіс знакаў, супадае з любым з сімвалаў а ....

[^ А ...]

інвертаваны спіс знакаў, адпавядае любому знаку , акрамя аЬса ....

r1 | r2

Чаргаванне: адпавядае або R1 або R2.

R1R2

канкатэнацыя: адпавядае r1, а затым r2.

г +

супадае з адным або больш R «с.

г *

адпавядае нуля або больш г «ы.

г?

адпавядае нуля або адзінцы г «ы.

(Г)

Групоўка: матчы г.

г {п}

г {п,}

г {п, т} Адзін ці два ліку ўнутры фігурных дужак азначаюць інтэрвальнай выраз. Калі ёсць адзін нумар у фігурных дужках, папярэдняе рэгулярны выраз г паўтараецца п раз. Калі ёсць два ліку , падзеленыя коскі, г паўтараецца п да т раз. Калі ёсць адзін нумар з наступнай коскі, то г паўтарае па меншай меры п раз.

Інтэрвальныя выразы даступныя толькі тады , калі або --posix або --re інтэрвал задаецца ў камандным радку.

\ у

адпавядае пусты радку ў пачатку ці ў канцы слова.

\ B

адпавядае пусты радку ў межах слова.

\ <

супадае з пустой радком у пачатку слова.

\>

адпавядае пусты радку ў канцы слова.

\ ш

адпавядае любому знаку са складу слова (літара, лічба ці падкрэсліванне).

\ W

адпавядае любому знаку, які не ў складзе слова.

\ `

адпавядае пусты радку ў пачатку буфера (радкі).

\ '

адпавядае пусты радку ў канцы буфера.

Кіравальныя паслядоўнасці, якія дапушчальныя ў радковых канстантах (гл ніжэй), таксама сапраўдныя на рэгулярных выразах.

Класы сімвалаў новая функцыя , прадстаўленая ў стандарце POSIX. Клас сімвалаў ўяўляе сабой спецыяльнае пазначэнне для апісання спісаў сімвалаў, якія маюць пэўны атрыбут, але дзе самі фактычныя сімвалы могуць адрознівацца ў залежнасці ад краіны і / або з набору сімвалаў набору знакаў. Напрыклад, паняцце аб тым, што ўяўляе сабой алфавітны сімвал адрозніваецца ў ЗША і ў Францыі.

Клас сімвалаў дзейнічае толькі ў рэгулярным выразе ўнутры дужак Знакавыя спісу. Класы сімвалаў складаецца з [:, ключавое слова , якое пазначае клас, і:]. Класы сімвалаў, пэўныя стандартам POSIX з'яўляюцца:

[Лічба , літара]

Літарна-лічбавыя сімвалы.

[: Альфа - :]

Літарныя сімвалы.

[: Пуста:]

Прабелы і сімвалы табуляцыі.

[: CNTRL:]

Кіраўнікі сімвалы.

[: Лічбы:]

Лікавыя сімвалы.

[: Графік:]

Сімвалы, якія з'яўляюцца адначасова пячаткай і бачнымі. (Прастора для друку, але не відаць, у той час як а ёсць і іншыя.)

[: Ніжняя:]

Малыя літары алфавіту.

[: Друк:]

Друкаваныя сімвалы (сімвалы, якія не кантралююць сімвалы.)

[Пунктуатор]

Знакі прыпынку (знакі, якія не з'яўляюцца літары, лічбы, якія кіруюць знакі ці знакі прабелу).

[: Плошча:]

Касмічныя сімвалы (такія як прабел, табуляцыя і Под.стр, каб назваць некалькі).

[: Верхняя:]

Верхняга рэгістра алфавітных знакаў.

[: Xdigit:]

Сімвалы, якія шаснаццаткавыя лічбы.

Напрыклад, да стандарту POSIX, каб адпавядаць алфавітна - лічбавых знакаў, то прыйшлося б пісаць / [A-Za-z0-9] /. Калі набор сімвалаў іншых літар у ім, гэта не будзе адпавядаць ім, і калі вашаму набору сімвалаў супастаўляюцца у адрозненні ад ASCII, гэта можа нават не адпавядаць сімвалаў ASCII літарна-лічбавым. З дапамогай класаў POSIX можна пісаць / [[лічбай , літарай]] /, і гэта адпавядае літарах і лічбам ў вашым наборы знакаў.

Дзве дадатковыя спецыяльныя паслядоўнасці могуць з'явіцца ў спісе знакаў. Яны ставяцца да не-ASCII набораў сімвалаў, якія могуць мець адзінкавыя сімвалы ( так званыя листоподборочные элементы), якія прадстаўлены больш чым адзін знак, а таксама некалькі знакаў, якія эквівалентныя для парадкавання або сартавання мэтаў. (Напрыклад, на французскай мове, просты `` е «» і грубы акцэнт é` эквівалентны.)

Collating Сімвалы

Упарадковец сімвал з'яўляецца мульты-знакавы упарадковец элемент , зняволены ў [. і.]. Напрыклад, калі ч ёсць упарадковец элемент, то [[.ch.]] З'яўляецца рэгулярным выразам , якое адпавядае гэтаму парадкуюцца элементу, у той час як [ч] з'яўляецца рэгулярным выразам , якое адпавядае альбо З , альбо гадзіне.

класы эквівалентнасці

Клас эквівалентнасці з'яўляецца лакаль-спецыяльную імя для спісу сімвалаў, якія эквівалентныя. Імя складзена ў [= і =]. Так , напрыклад, назву е можа быць выкарыстана для прадстаўлення ўсіх `` е, «» `` е »," "і`` é` "" . У гэтым выпадку [[= е =]] з'яўляецца рэгулярным выразам, адпавядае любому е, ё », або é`.

Гэтыя асаблівасці вельмі каштоўныя ў неангламоўных месцах. Бібліятэчныя функцыі, паглядзець выкарыстоўвае для рэгулярных выразаў ў дадзены момант распазнаюць толькі класы сімвалаў POSIX; яны не распазнаюць парадкуюцца сімвалы або класы эквівалентнасці.

\ У, \ У \ <\>, \ ш, \, \ W ', і аператары \' з'яўляюцца спецыфічнымі для паглядзець; яны з'яўляюцца працягамі на аснове наяўных сродкаў у бібліятэках рэгулярных выразаў GNU.

Розныя параметры каманднага радка кіравання , як прасцяк інтэрпрэтуе сімвалы ў рэгулярных выразах.

няма опцый

У выпадку , калі па змаўчанні, паглядзець падаюць усе сродкі POSIX рэгулярных выразаў і аператараў рэгулярных выразаў theGNU , апісаныя вышэй. Аднак, інтэрвальныя выразы не падтрымліваюцца.

--posix

Толькі POSIX рэгулярныя выразы, аператары GNU не зьяўляюцца адмысловымі. (Напрыклад, \ ш супадае з літаральным ш). Інтэрвальныя выразы дапускаюцца.

--traditional

Традыцыйныя Un AWK рэгулярныя выразы супадаюць. Аператары GNU ня не зьяўляюцца адмысловымі, інтэрвальнай выразы не даступныя, і ні з'яўляюцца класы POSIX сімвалаў ([[: лічба , літара]] і гэтак далей). Сімвалы ў васьмярковых і шаснаццатковых паслядоўнасцях разглядаюцца літаральна, нават калі яны ўяўляюць сабой рэгулярныя выразы метасімвалы.

--re інтэрвал

Дазволіць інтэрвальныя выразы ў рэгулярных выразах, нават калі --traditional было прадугледжана.

дзеянні

Аператары дзеянні складаюцца ў фігурныя дужкі {і}. Аператары дзеянні складаюцца з звычайнага прысвойвання, умоўны і перакручванне заяў можна знайсці ў большасці моў. Аператары, якія кіруюць аператары і аператары ўводу / высновы, даступныя па ўзоры тых, у C.

аператары

Аператары ў AWK, у парадку змяншэння прыярытэту, з'яўляюцца

(...)

групаванне

$

Спасылка на полі.

++ -

Инкремент і декремент, як прэфікс і постфикс.

^

Узвядзенне (** таксама могуць быць выкарыстаны, і ** = для аператара прысвойвання).

+ -!

Унарные плюс і мінус і лагічнае адмаўленне.

* /%

Множанне, дзяленне і модуль.

+ -

Складанне і адніманне.

прастору

Аб'яднанне радкоў.

<>

<=> =

! = == Звычайныя аперацыі адносіны.

~! ~

Рэгулярны выраз матч, інвертаваны матч. УВАГА: Не выкарыстоўвайце пастаяннае рэгулярны выраз (/ Foo /) на левай баку ~ ці ~ !. Выкарыстоўвайце толькі адзін на правай баку. Выраз / Foo / ~ ехр мае такое ж значэнне , як (($ 0 ~ / Foo /) ~ ехр). Гэта, як правіла , не тое , што было задумана.

у

сяброўства ў масіў.

&&

Лагічнае.

||

Лагічнае АБО.

?:

Ўмоўнае выраз С. Гэта мае выгляд expr1? expr2: expr3. Калі expr1 праўдзіва, то значэнне выразу выражение2, у адваротным выпадку яна expr3. Толькі адзін з expr2 і Expr3 ацэньваецца.

= + = - =

* = / =% = ^ = Прысвойвання. І абсалютная прызначэнне (зменная = значэнне) і аператар-прысвойвання (іншыя формы) падтрымліваюцца.

кіраўнікі

Аператары кіравання заключаюцца ў наступным:

калі (ўмова) аператар [яшчэ аператар] у той час як (умова) аператар зрабіць заяву ў той час як (умова) для (expr1; expr2; expr3) заяву для (вар ў масіве) заяву перапынку працягнуць выдаленне масіва [індэкс] выдаліць выхад масіва [выраз] { заявы}

Заявы I / O

Аператары ўводу / высновы з'яўляюцца наступнымі:

блізка (файл [, як])

Зачыніць файл, труба або сумесны працэс. Па жаданні , як варта выкарыстоўваць толькі пры закрыцці аднаго канца двухбаковы трубы са-працэс. Яно павінна быць радковае значэнне, альбо «ў» або «з».

GetLine

Ўсталяваць $ 0 з наступнай ўваходных запісу; ўсталяваць NF, NR, FNR.

GetLine <файл

Ўсталяваць $ 0 з наступнай запісу файла; ўсталяваць NF.

GetLine вар

Набор вару з наступнай ўваходных запісу; ўсталяваць NR, FNR.

GetLine вар <файл

Ўсталяваць вар наступнай запісу з файла.

каманда | GetLine [вар]

Запуск каманды перанаправіўшы выснову альбо ў $ 0 або вар, як паказана вышэй.

Каманда | & GetLine [вар]

Выканаць каманду ў якасці са-тэхналагічных трубаправодаў выхад альбо ў $ 0 або вар, як паказана вышэй. Са-працэсы з'яўляюцца працягам Gawk.

наступны

Спыніць апрацоўку бягучай уваходнай запісу. Наступны ўваходная запіс счытваюцца і апрацоўка пачынаецца з першым шаблонам праграмы AWK. Калі канец ўваходных дадзеных дасягаецца, блок (ы) END, калі такія маюцца, выконваюцца.

nextfile

Спыніць апрацоўку бягучага ўваходнага файла. Наступны ўваходная запіс чытаецца з наступнага уваходнага файла. Імя_файла і ARGIND абнаўляюцца, FNR скідаецца ў 1, і апрацоўка пачынаецца з першага шаблону праграмы AWK. Калі канец ўваходных дадзеных дасягаецца, блок (ы) END, калі такія маюцца, выконваюцца.

друк

Друк бягучай запісу. Выхадныя запіс спыняецца са значэннем зменнай ПРС.

друк спіс выразаў

Прынты выразы. Кожнае выраз аддзяляецца ад значэння зменнай OFS. Выхадныя запіс спыняецца са значэннем зменнай ПРС.

друк спіс выразаў> файл

Прынты выразы ў файле. Кожнае выраз аддзяляецца ад значэння зменнай OFS. Выхадныя запіс спыняецца са значэннем зменнай ПРС.

Printf FMT, спіс выразаў

Фарматаванне і друк.

Printf FMT, спіс выразаў> файл

Фарматаванне і друк на файл.

Сістэма (CMD-лінія)

Выканайце каманду CMD-радок і вяртае статус выхаду. (Гэта не можа быць даступная на сістэмах, выдатных ад POSIX.)

fflush ([файл])

Прамыць любыя буфера , звязаныя з адкрытым выхадных файлам ці файлам трубы. Калі файл адсутнічае, то стандартны вывад скідаецца. Калі файл з'яўляецца пустым радком, то ўсё адкрытымі выходнымі файлы і трубы маюць свае буфера пачырванелі.

Дадатковыя выходныя перапрызначэння дазволеныя для друку і Printf.

друк ... >> файл

дапісвае выснову ў файл.

друк ... | каманда

піша на трубе.

друк ... | & каманда

перадае дадзеныя са-працэс.

Аддача каманды GetLine 0 на канцы файла і -1 пры памылцы. Пасля памылкі, ERRNO змяшчае радок з апісаннем праблемы.

Заўвага: Пры выкарыстанні трубы або сумеснага працэсу на GetLine, або з друку або Printf у цыкле, вы павінны выкарыстоўваць блізка () для стварэння новых асобнікаў каманды. AWK аўтаматычна не закрываўся трубы або спадарожныя працэсы, калі яны вяртаюць EOF.

Printf Заява

Версіі AWK з заявы PRINTF і Sprintf () функцый (гл ніжэй) прымаюць наступныя спецыфікацыі фарматаў канверсіі:

% з

ASCII сімвалаў. Калі аргумент выкарыстоўваецца для% з лічбавай, яна разглядаецца як сімвал і друкуецца. У адваротным выпадку, мяркуецца, што аргумент павінен быць радком, а толькі першы сімвал гэтага радка друкуецца.

% D,% я

Дзесятковы лік (цэлая частка).

% Е,% E

З плавае коскі лік выгляду [-] d.dddddde [+ -] дд. Фармат% E выкарыстоўвае E замест е.

% е

З плавае коскі лік выгляду [-] ddd.dddddd.

% Г,% G

Выкарыстоўвайце% е або пераўтварэнне% F, у залежнасці ад таго карацей, з несапраўднымі нулямі падушаныя. Фармат% G выкарыстоўвае% E замест% е.

% аб

Беззнаковое васьмярковай лік (таксама цэлы лік).

% U дзесятковы лік без знака (ізноў жа , цэлы лік).

% s

Радок знакаў.

% Х,% Х

Беззнаковое шаснаццатковы лік (цэлы лік). Фармат% X выкарыстоўвае ABCDEF замест ABCDEF.

%%

Адзін знак%; аргумент не пераўтвараецца.

Неабавязковыя, дадатковыя параметры могуць знаходзіцца паміж% і літарай кіравання:

колькасць $

Выкарыстоўвайце лічыльнік «й аргумент на дадзены момант фарматавання. Гэта называецца пазіцыйнай спецификатор і прызначаны ў першую чаргу для выкарыстання ў перакладзеных версіях радкоў фармату, а не ў зыходным тэксце праграмы AWK. Гэта пашырэнне прасцяка.

-

Выраз павінна быць зрушана налева на сваім полі.

прастору

Для лікавых пераўтварэнняў, прэфікс станоўчыя значэння з прабелам, а адмоўныя значэння са знакам мінус.

+

Знак плюс, выкарыстоўваецца перад мадыфікатарам шырыні (гл ніжэй), каб заўсёды паставіць знак для лікавых пераўтварэнняў, нават калі дадзеныя павінны быць адфарматаваны дадатны. + Мадыфікатар перакрывае прастору.

#

Выкарыстоўвайце `` альтэрнатыўны від «» для некаторых кіраўнікоў літар. Для% о, вядучыя нулі. Для% х і% X, забяспечваць вядучы 0x або 0X для ненулявога выніку. Для% е,% E і% F, вынік заўсёды ўтрымлівае дзесятковую кропку. Для% г і% G, канчатковыя нулі не выдаляюцца з выніку.

0

Вядучы 0 (нуль) дзейнічае як сцяг, які паказвае выхад павінен быць дапоўнены нулямі замест прабелаў. Гэта ставіцца нават да нечисловым выхадных фарматам. Гэты сцяг мае сілу толькі ў тым выпадку, калі шырыня поля больш значэнне, якое павінна быць надрукавана.

шырыня

Поле павінна быць пашырана да названай шырыні. Поле звычайна дапаўняецца прабеламі. Калі 0 сцяг быў выкарыстаны, ён дапаўняецца нулямі.

, Prec

Лік, якое паказвае дакладнасць для выкарыстання пры друку. Для% е,% E і% фарматаў F, гэта паказвае колькасць лічбаў , якія вы хочаце надрукаваць справа ад дзесятковай кропкі. Для% г і% G фарматаў, ён вызначае максімальную колькасць ўважаецца лічбаў. Для% D,% о,% I,% і,% х і% X фарматаў, ён вызначае мінімальная колькасць лічбаў для друку. Для% з, ён вызначае максімальную колькасць знакаў у радку , якія павінны быць надрукаваныя.

Дынамічная шырыня і PrEC Магчымасці ANSI C Е () падпраграмы падтрымліваюцца. A * замест шырыні або PrEC спецыфікацыі прыводзіць да іх значэння павінны быць ўзятыя з спісу аргументаў на PRINTF або Sprintf (). Для таго, каб выкарыстоўваць пазіцыйную спецификатор з дынамічнай шырынёй або дакладнасцю падача рахункаў $ пасля * ў радку фармату. Напрыклад, "% 3 $ * 2 $. * 1 $ S".

Спецыяльныя імёны файлаў

Пры перанакіраванні ўводу / высновы з любой друку або Printf ў файл або праз GetLine з файла, прасцяк распазнае некаторыя спецыяльныя імёны файлаў ўнутры. Гэтыя імёны дазваляюць доступ да дэскрыптараў адкрытых файлаў , атрыманых у спадчыну ад паглядзець «s бацькоўскага працэсу (звычайна абалонкі). Гэтыя імёны файлаў могуць быць таксама выкарыстаны ў камандным радку імя файла дадзеных. Імёны файлаў:

/ DEV / STDIN

Стандартны ўвод.

/ DEV / STDOUT

Стандартны вывад.

/ DEV / STDERR

Стандартны вывад памылак.

/ DEV / FD / п

Файл , звязаны з адкрытым файлавым дэскрыптарам п.

Гэта асабліва карысна для паведамленняў пра памылкі. Напрыклад:

друк «Вы ўзарвалі яго!» > "/ DEV / STDERR"

у той час як вы ў адваротным выпадку давялося б выкарыстоўваць

друк «Вы ўзарвалі яго!» | "Кот 1> & 2"

Наступныя спецыяльныя імёны файлаў могуць быць выкарыстаны з | аператара і са-працэсу для стварэння злучэнняў TCP / IP сеткі.

/ Інэт / TCP / LPORT / RHOST / rport

Ніякія файлы для TCP / IP злучэння на лакальны порт LPORT на выдалены хост RHOST на выдаленым rport порту. Выкарыстоўвайце порт 0 , каб сістэма выбраць порт.

/ Інэт / UDP / LPORT / RHOST / rport

Аналагічна, але выкарыстаць UDP / IP замест TCP / IP.

/ Інэт / сыравіны / LPORT / RHOST / rport

Зарэзервавана для будучага выкарыстання.

Іншыя спецыяльныя імёны файлы забяспечваюць доступ да інфармацыі аб запушчаных працэсах паглядзець. Гэтыя імёны файлаў у цяперашні час састарэлі. Выкарыстоўвайце масіў PROCINFO , каб атрымаць інфармацыю , якую яны падаюць. Імёны файлаў:

/ DEV / PID

Чытанне гэтага файла вяртае ідэнтыфікатар працэсу бягучага працэсу, у дзесятковай сістэме вылічэння, з сімвалам новага радка.

/ DEV / PPID

Чытанне гэтага файла вяртае ідэнтыфікатар працэсу бягучага працэсу, у дзесятковай сістэме вылічэння, з сімвалам новага радка.

/ DEV / pgrpid

Чытанне гэтага файла вяртае ідэнтыфікатар групы бягучага працэсу, у дзесятковай сістэме вылічэння, з сімвалам новага радка.

/ DEV / карыстальнік

Чытанне гэтага файла вяртае адзін запіс з новай радком. Поля падзеленыя прабеламі. $ 1 значэнне getuid (2) сістэмны выклік, $ 2 значэння geteuid (2) сістэмны выклік, $ 3 значэння getgid (2) сістэмны выклік, і $ 4 з'яўляецца значэннем getegid (2) сістэмны выклік. Калі ёсць якія - небудзь дадатковыя поля, яны ўтрымліваюць групавыя ідэнтыфікатары , якiя вяртаюцца getgroups (2). Некалькі груп могуць не падтрымлівацца на ўсіх сістэмах.

лікавыя функцыі

AWK мае наступныя убудаваныя арыфметычныя функцыі:

atan2 (у, х)

Вяртае арктангенс у / х у радыянах.

сов (выраз)

Вяртае косінус выказваючы, у радыянах.

ехр (выраз)

Паказальная функцыя.

INT (выраз)

Усекает цэлы лік.

LOG (выраз)

Натуральны лагарыфм функцыі.

Rand ()

Вяртае выпадковы лік у дыяпазоне ад 0 да 1.

грэх (выраз)

Вяртае сінус выказваючы, у радыянах.

SQRT (выраз)

Квадратны корань функцыі.

srand ([выраз])

Выкарыстанне выказваючы як новае пачатак для генератара выпадковых лікаў. Калі няма выяўленыя не прадугледжаны, час сутак выкарыстоўваюцца. Вяртаецца значэнне папярэдніх насенне для генератара выпадковых лікаў.

радковыя функцыі

Gawk мае наступныя убудаваныя радковыя функцыі:

asort [, д])

Вяртае колькасць элементаў у зыходным масіве с. Змест S сартуюцца выкарыстоўваючы звычайныя правілы Gawk «ы для параўнання значэнняў, а таксама індэксы адсартаваных значэнняў х замяняюцца паслядоўнымі цэлымі лікамі , пачынаючы з 1. Калі паказаны неабавязковы мэтавай масіў d, то спачатку з прадубляваныя ў г , а затым д сартуе, пакідаючы індэксы масіва крыніцы з нязменным.

gensub (г, з, ч [, т])

Пошук мэтавай радкі т для матчаў рэгулярнага выразы г. Калі Н радкі , якая пачынаецца з г або G, а затым замяніць усе матчы г з с. У адваротным выпадку, ч ўяўляе сабой лік , якое паказвае на матч г замяніць. Калі т не ўваходзіць у камплект, $ 0 выкарыстоўваецца замест гэтага. У замены тэксту з, паслядоўнасць \ п, дзе п ёсць лічба ад 1 да 9, можа быць выкарыстана для абазначэння толькі тэкст , які адпавядаў п «й круглых дужках. Паслядоўнасць \ 0 ўяўляе ўвесь супалы тэкст, як гэта робіць сімвал &. У адрозненне ад падпункта () і GSUB (), мадыфікаваная радок вяртаецца як вынік функцыі, а зыходная мэтавая радок не змяняецца.

GSUB (R, S [, т])

Для кожнай падрадка , адпаведнай рэгулярнае выразы г у радках т, замяніць радок з, і вяртае колькасць замен. Калі т не ўваходзіць у камплект, выкарыстоўвайце $ 0. І ў тэксце замены замяняецца тэкстам , які быў фактычна супала. Выкарыстоўвайце \ & атрымаць літаральны &. (Гэта павінна быць набрана як «\\ &"; гл паглядзець: Эфектыўнае праграмаванне AWK для больш поўнага абмеркавання правілаў і х і слеш замены тэксту падпункта (), GSUB (), і gensub ().)

Індэкс (с, т)

Вяртае індэкс радкі т у радку х, або 0 , калі т няма. (Гэта азначае, што індэксы сімвалаў пачынаюцца ў адзін.)

Даўжыня ([с])

Вяртае даўжыню радка з, або даўжыню $ 0 , калі s ня падаецца.

матч (з, г [а])

Вяртае пазіцыю ў сек , дзе рэгулярны выраз г адбываецца, або 0 , калі г няма, і ўстанаўлівае значэння RSTART і RLENGTH. Звярніце ўвагу , што парадак аргументаў такі ж , як для аператара ~: вул ~ рэ. Калі масіў з забяспечваецца, A чысціцца , а затым элементы 1 праз п запоўненыя з часткамі , якія адпавядаюць з адпаведнай подвыражению у дужках р. 0'th элемент а змяшчае частка з дапамогай адпаведных ўсім назваў паведамленняў г.

спліт (с, а [, г])

Разбівае радок S у масіў па рэгулярнаму выразу г, і вяртае колькасць палёў. Калі г апушчаны, FS выкарыстоўваецца замест. Масіў з чысціцца першым. Расшчапленне паводзіць сябе ідэнтычна поле расшчапленне, апісанае вышэй.

Sprintf (FMT, спіс выразаў)

Друкуе спіс выразаў у адпаведнасці з ДРМ, і вяртае атрыманую радок.

StrToNum (вул)

Разглядае вул, і вяртае яго лікавае значэнне. Калі радок пачынаецца з вядучым 0, StrToNum () мяркуе , што вул з'яўляецца васьмярковай лікам. Калі радок пачынаецца з 0x або 0X, StrToNum () мяркуе , што вул ўяўляе сабой шаснаццатковы лік.

да поўдня (R, S [, т])

Гэтак жа , як GSUB (), але толькі першае адпаведнасць падрадка замяняецца.

зиЬзЬг (с, я [п])

Вяртае самы п -character падрадка , пачынаючы з I. Калі п апушчаны, то выкарыстоўваецца астатняя частка с.

ToLower (вул)

Вяртае копію радкі радкі, з усімі знакамі верхняга рэгістра ў га перакладных іх адпаведных маленькіх калега. Неалфавітныя знакі застаюцца без змен.

ToUpper (вул)

Вяртае копію радкі радкі, з усімі малымі літарамі ў га перакладзеных ў адпаведных вялікіх аналагі. Неалфавітныя знакі застаюцца без змен.

функцыі часу

Так як адна з асноўных ужыванняў праграм AWK апрацоўваюць лог - файлы , якія ўтрымліваюць інфармацыю пазнакі часу, прасцяк прадастаўляе наступныя функцыі для атрымання часовых пазнак і іх фарматавання.

паказваеце ёй (datespec)

Rurns datespec ў штамп часу аднаго і таго ж віду, які вяртаецца SysTime (). Datespec з'яўляецца радок выгляду YYYY ММ ДД ЧЧ ММ СС [DST]. Змесціва радкі шэсць ці сем лікаў, якія прадстаўляюць адпаведна ўвесь год, уключаючы стагоддзя, месяц ад 1 да 12, дзень месяца ад 1 да 31, гадзіна дня ад 0 да 23, хвіліны ад 0 да 59, а другі ад 0 да 60, і дадатковы сцяг гадовае. Значэння гэтых лікаў не павінны быць у межах дыяпазонаў, названых; напрыклад, гадзіна -1 азначае 1 гадзіна да паўночы. Паходжанне ад нуля Грыгарыянскі каляндар мяркуецца, з год 0 папярэдні год 1 і год -1 год, які папярэднічае 0. Час мяркуецца ў лакальнай часовай зоне. Калі летні сцяг з'яўляецца станоўчым, то час лічыцца летні часам эканоміі; Калі яна роўная нулю, то час лічыцца стандартны час; і калі адмоўны (па змаўчанні), паказваеце ёй () спрабуе вызначыць , ці з'яўляецца пераход на летні час дзейнічае на працягу пэўнага часу. Калі datespec не ўтрымлівае дастатковую колькасць элементаў або калі выніковае час знаходзіцца па-за дыяпазону, ўказвае ёй () вяртае -1.

STRFTIME ([фармат [, пазнака часу]])

Фарматы часовай пазнакі ў адпаведнасці са спецыфікацыяй ў фармаце. Пазнака часу павінна быць адной і той жа форме , як якое вяртаецца SysTime (). Калі пазнака адсутнічае, то бягучы час сутак выкарыстоўваюцца. Калі фармат адсутнічае, фармат па змаўчанні эквівалентна выхаду даты выкарыстоўваецца (1). Глядзіце спецыфікацыю функцыі STRFTIME () у ANSI C для пераўтварэння фарматаў, якія гарантавана будуць даступныя. Версія дзяржаўнага дамена STRFTIME (3) і старонка чалавека для яго прыйсці з прасцяка; калі гэтая версія была выкарыстаная для стварэння Gawk, то ўсё пераўтварэнні , апісаныя ў гэтай старонцы кіраўніцтва даступныя паглядзець.

SysTime ()

Вяртае бягучы час як лік секунд, якія прайшлі з пачатку Эпохі (1970-01-01 00:00:00 UTC на сістэмах POSIX).

Біта Маніпуляцыя Функцыя

Пачынаючы з версіі 3.1 прасцяка, наступныя бітаў функцыі маніпуляцыі даступныя. Яны працуюць шляхам пераўтварэння значэння з якая плавае коскі з двайны дакладнасцю да знака доўгіх цэлых лікаў, выконваючы аперацыю, а затым пераўтварыць назад вынік з якая плавае кропкай. Гэтыя функцыі з'яўляюцца:

і (v1, v2)

Вяртае пабітавае І значэнняў , прадугледжаных v1 і v2.

компл (Val)

Вяртае пабітавае дадатак Вала.

LShift (вал, лічыльнік)

Вяртае значэнне Вала, зрушваецца налева ў залежнасці ад колькасці біт.

або (v1, v2)

Вяртае пабітавае АБО значэнняў , якія прадстаўляюцца v1 і v2.

RShift (вал, лічыльнік)

Вяртае значэнне ВАЛ, зрушаны направа ў залежнасці ад колькасці бітаў.

XOR (v1, v2)

Вяртае пабітавае якое выключае значэнняў , прадугледжаных v1 і v2.

функцыі Інтэрнацыяналізацыя

Пачынаючы з версіі 3.1 прасцяка, наступныя функцыі могуць быць выкарыстаны ў рамках вашай праграмы AWK для перакладу радкі падчас выканання. Для больш падрабязнай інфармацыі гл паглядзець: Эфектыўнае AWK праграмаванне.

bindtextdomain (каталог [дамен])

Вызначае каталог, прасцяк выглядае для .mo файлаў, у выпадку , калі яны не будуць або не могуць быць змешчаны ў `` стандартных «» месцах (напрыклад, падчас тэставання). Яна вяртае каталог , у якім дамен `` звязаны. «»

Дамен па змаўчанні з'яўляецца значэннем дамена. Калі дырэкторыя пустая радок ( «»), то bindtextdomain () вяртае бягучую прывязку для дадзенага дамена.

dcgettext (радок [, дамен [катэгорыя]])

Вяртае пераклад радка ў галіне дамена тэксту для лакалі катэгорыі катэгорыі. Значэнне па змаўчанні для дамена бягучага значэння дамена. Значэнне па змаўчанні для катэгорыі з'яўляецца «LC_MESSAGES».

Калі паказаць значэнне катэгорыі, яна павінна быць радок роўная адной з вядомых катэгорый лакалі , апісаных у падзівіцца: Эфектыўнае праграмаванне AWK. Вы павінны таксама даць тэкставы дамен. Выкарыстоўвайце даменную , калі вы хочаце выкарыстоўваць бягучы дамен.

dcngettext (string1, string2, нумар [дамен [, катэгорыя]])

Вяртае форму множнага ліку , выкарыстоўваную для ліку перакладу string1 і string2 ў галіне дамена тэксту для моўнай катэгорыі катэгорыі. Значэнне па змаўчанні для дамена бягучага значэння дамена. Значэнне па змаўчанні для катэгорыі з'яўляецца «LC_MESSAGES».

Калі паказаць значэнне катэгорыі, яна павінна быць радок роўная адной з вядомых катэгорый лакалі , апісаных у падзівіцца: Эфектыўнае праграмаванне AWK. Вы павінны таксама даць тэкставы дамен. Выкарыстоўвайце даменную , калі вы хочаце выкарыстоўваць бягучы дамен.

Вызначаныя карыстальнікам функцыі

Функцыі ў AWK вызначаюцца наступным чынам:

Імя функцыі (спіс параметраў) {аператары}

Функцыі выконваюцца, калі яны выклікаюцца з выразаў альбо шаблонаў або дзеянняў. Фактычныя параметры, якія пастаўляюцца ў выкліку функцыі выкарыстоўваюцца для стварэння асобніка фармальных параметраў, абвешчаных у функцыі. Масівы перадаюцца па спасылцы, астатнія зменныя перадаюцца па значэнні.

Паколькі функцыі не былі першапачаткова часткай мовы AWK, забеспячэнне лакальных пераменным даволі нязграбна: Яны абвешчаныя ў якасці дадатковых параметраў у спісе параметраў. Пагадненне складаецца ў тым, каб аддзяліць лакальныя зменныя ад рэальных параметраў з дапамогай дадатковых прабелаў ў спісе параметраў. Напрыклад:

функцыя F (р, д, а, б) # а і Ь з'яўляюцца лакальнымі {...} / ABC / {...; F (1, 2); ...}

Левая дужка ў выкліку функцыі абавязкова прытрымлівацца непасрэдна за імем функцыі, без усялякіх прамежкавых прабелаў. Гэта дазваляе пазбегнуць сінтаксічных невыразнасцяў з аператарам канкатэнацыі. Гэта абмежаванне не распаўсюджваецца на ўбудаваных функцый, пералічаных вышэй.

Функцыі могуць выклікаць адзін аднаго і могуць быць рэкурсіўны. Параметры функцыі, якія выкарыстоўваюцца ў якасці лакальных зменных ініцыялізуюцца пустым радком, і лік нуль пры выкліку функцыі.

Выкарыстоўвайце зваротны выказваючы для вяртання значэння з функцыі. Вяртаецца значэнне не вызначана, калі не прадугледжана ніякага значэння, ці калі функцыя вяртае па `` спадання «» канца.

Калі --lint было прадугледжана, прасцяк папярэджвае аб выкліку нявызначаных функцый падчас сінтаксічнага аналізу, а ня ў час выканання. Выклік нявызначанай функцыі падчас выканання з'яўляецца фатальнай памылкай.

Слова FUNC можа выкарыстоўвацца замест функцыі.

Дынамічныя ЗАГРУЗКА НОВЫЯ ФУНКЦЫІ

Пачынаючы з версіі 3.1 прасцяка, вы можаце дынамічна дадаваць новыя убудаваныя функцыі для запушчанага інтэрпрэтатара паглядзець. Поўная інфармацыя выходзіць за рамкі дадзенага кіраўніцтва старонкі; см паглядзець: Эфектыўнае AWK Праграмаванне для дэталяў.

Пашырэнне (аб'ект, функцыя)

Дынамічна звязаць агульны аб'ектны файл з імем , аб'ект і выклікаць функцыю ў гэтым аб'екце, каб выканаць ініцыялізацыю. Яны абодва павінны быць прадастаўлены ў выглядзе радкоў. Вяртае значэнне , якое вяртаецца функцыяй.

Гэтая функцыя прадугледжана і задакументавана ў паглядзець: Эфектыўнае праграмаванне AWK, але ўсё аб гэтай функцыі, верагодна, зменіцца ў наступным выпуску. Мы настойліва раім вам не выкарыстоўваць гэтую функцыю для ўсяго , што вы не гатовыя паўтарыць.

сігналам

pgawk прымае два сігналу. SIGUSR1 прымушае яго скінуць профіль і функцыі стэка выклікаў у файле профілю, які з'яўляецца альбо awkprof.out, або любы іншы файл быў названы з --profile варыянт. Затым ён працягвае працаваць. SIGHUP прымушае яго скінуць профіль і выклік функцыі стэка , а затым выйсці.

прыклады

Друк і адсартаваць лагіны ўсіх карыстальнікаў: BEGIN {FS = ":"} {друк $ 1 | «Роду»} граф радкоў у файле: {NLINES ++} END {NLINES друк} Перад кожнага радка па яго нумары ў файле: {друк FNR, $ 0} Аб'яднаць і нумар радка (варыяцыя на тэму): {друку NR, $ 0}

інтэрнацыяналізацыя

Радковыя канстанты ўяўляюць сабой паслядоўнасць знакаў, зняволеныя ў падвойных двукоссях. У неангламоўных асяроддзях, можна адзначыць радкі ў праграме AWK як якія патрабуюць перакладу на роднай натуральнай мове. Такія радкі адзначаюцца ў праграме AWK з пачатковым сімвалам падкрэслення ( `` _ '). Напрыклад,

паглядзець «BEGIN {друк" Прывітанне, свет "}»

заўсёды друкуе прывітанне, свет. але,

паглядзець 'BEGIN {друк _ "Прывітанне, свет"}'

можа надрукаваць Bonjour, Monde ў Францыі.

Ёсць некалькі крокаў, якія ўдзельнічаюць у вытворчасці і працуе лякалізуюцца праграму AWK.

1.

Дадаць ПАЧАЦЬ дзеянне , каб прысвоіць значэнне зменнай даменныя ўсталяваць тэкставы дамен на імя звязанага з вашай праграмай.


BEGIN {даменныя = "MyProg"}

Гэта дазваляе паглядзець знайсці файл .mo , звязаны з вашым праграмай. Без гэтага кроку, прасцяк выкарыстоўвае паведамлення тэксту дамен, які , верагодна , не ўтрымлівае пераклады для вашай праграмы.

2.

Адзначыць усе радкі, якія павінны быць пераведзены з вядучым падкрэсленнем.

3.

Пры неабходнасці, выкарыстоўвайце dcgettext () і / або bindtextdomain () функцыю ў вашай праграме, у залежнасці ад абставін.

4.

Запуск прасцяк --gen-ро -f myprog.awk> myprog.po для стварэння .po файла для вашай праграмы.

5.

Забяспечыць адпаведныя пераклады, а таксама пабудаваць і ўсталяваць адпаведны файл .mo.

Магчымасці інтэрнацыяналізацыі апісаны ва ўсіх дэталях ў паглядзець: Эфектыўнае AWK Programming.

Posix Сумяшчальнасць

Асноўнай мэтай для прасцяка з'яўляецца сумяшчальнасць са стандартам POSIX, а таксама з апошняй версіяй UNIX AWK. З гэтай мэтай, прасцяк ўключае ў сябе наступныя прыстасаваныя бачныя прыкметы , якія не апісаны ў кнізе AWK, але з'яўляюцца часткай версіі Bell Laboratories ў AWK, і знаходзяцца ў стандарце POSIX.

Кніга паказвае , што камандны радок прысваенне зменнай адбываецца , калі AWK інакш адкрыць аргумент у выглядзе файла, які пасля таго , як ПАЧАЦЬ блок. Аднак у ранніх рэалізацыях, калі такое прысвойванне з'явілася да імёнаў файлаў, прысвойванне адбывалася да таго , як ПАЧАЦЬ блок быў запушчаны. Заяўкі прыйшлі залежаць ад гэтага `` функцыі «» . Калі AWK быў зменены , каб адпавядаць яго дакументацыі, опцыя -v для прысвойвання значэнняў зменных да пачатку выканання праграмы была дададзеная для размяшчэння прыкладанняў, залежных ад старога паводзін. (Гэтая функцыя была ўзгоднена абедзвюма Bell Laboratories і распрацоўшчыкаў GNU.)

Опцыя -W для рэалізацыі асаблівасцяў ад стандарту POSIX.

Пры апрацоўцы аргументаў, прасцяк выкарыстоўвае спецыяльную опцыю `` - «» , каб пазначыць канец аргументаў. У рэжыме сумяшчальнасці, ён папярэджвае пра, але ў адваротным выпадку ігнаруе нявызначаныя параметры. У нармальным рэжыме працы, такія аргументы перадаюцца праграме AWK для яго апрацоўкі.

Кніга AWK не вызначае вяртаецца значэнне srand (). Стандарт POSIX мае яго вярнуць насеньне гэта было з дапамогай, каб сачыць за паслядоўнасцю выпадковых лікаў. Таму srand () у прасцяка таксама вяртае бягучы насеньне.

Іншыя новыя функцыі: Выкарыстанне некалькіх -f опцый (ад MKS AWK); масіў ЭНВАЙРОН; \ А і \ паслядоўнасці v ўцёкі (зроблена першапачаткова ў прасцяка і падаецца назад у версію Bell Laboratories); ToLower () і ToUpper () убудаваныя функцыі (ад версіі Bell Laboratories); і спецыфікацыі пераўтварэнні ANSI C ў Printf (зроблена першае ў версіі Bell Laboratories).

гістарычныя асаблівасці

Ёсць дзве асаблівасці гістарычных рэалізацый AWK , што паглядзець падтрымлівае. Ва- першых, можна назваць даўжыню () убудаванай функцыяй не толькі без аргументаў, але нават і без дужак! Такім чынам,

а = даўжыня # Святой Algol 60, Бэтмен!

такі ж, як любы з

а = даўжыня ()
а = даўжыня ($ 0)

Гэта функцыя пазначаецца як `` асуджаецца «» ў стандарце POSIX, і паглядзець выдае папярэджанне аб яе выкарыстанні , калі --lint паказаны ў камандным радку.

Іншая асаблівасцю з'яўляецца выкарыстаннем альбо працягваць ці заяву перапынку па-за целам некаторага часу, для, або зрабіць пятлю. Традыцыйныя рэалізацыі AWK разглядалі такое выкарыстанне як эквівалент наступнага аператара. Gawk падтрымлівае такое выкарыстанне , калі --traditional было паказана.

GNU Extensions

Gawk мае шэраг пашырэнняў для POSIX AWK. Яны апісаны ў гэтым раздзеле. Усе пашырэння , апісаныя тут , могуць быць адключаныя выклікам Gawk з --traditional опцыяй.

Наступныя асаблівасці прасцяка не даступныя ў POSIX AWK.

*

Шлях пошуку не выконваецца для файлаў з імем з дапамогай опцыі -f. Таму зменная асяроддзі AWKPATH не з'яўляецца спецыяльным.

*

Паслядоўнасць выхаду \ х. (Інваліды з --posix.)

*

Функцыя fflush (). (Інваліды з --posix.)

*

Магчымасць працягнуць лініі пасля таго, як ? і :. (Інваліды з --posix.)

*

Васьмярковы і шаснаццатковы канстанта у праграмах AWK.

*

ARGIND, BINMODE, ERRNO, LINT, RT і дамен зменныя не зьяўляюцца адмысловымі.

*

Пераменная IGNORECASE і яго пабочныя эфекты не даступныя.

*

Пераменная FIELDWIDTHS і фіксаванай шырыні поля расшчаплення.

*

Масіў PROCINFO не даступны.

*

Выкарыстанне RS ў якасці рэгулярнага выразы.

*

Спецыяльныя імёны файлаў, даступных для перанакіравання ўводу / высновы не распазнаюцца.

*

| & Аператар для стварэння спадарожных працэсаў.

*

Магчымасць падзелу з асобных сімвалаў , выкарыстоўваючы пусты радок у якасці значэння FS, а ў якасці трэцяга аргументу для падзелу ().

*

Неабавязковы другі аргумент функцыі Close ().

*

Неабавязковы трэці аргумент функцыі MATCH ().

*

Магчымасць выкарыстоўваць пазіцыйныя спецификаторы з Printf і Sprintf ().

*

Выкарыстанне выдалення масіва , каб выдаліць усе змесціва масіва.

*

Выкарыстанне nextfile адмовіцца ад апрацоўкі бягучага ўваходнага файла.

*

І (), asort (), bindtextdomain (), компл (), dcgettext (), gensub (), LShift (), паказваеце ёй (), або (), RShift (), STRFTIME (), StrToNum (), SysTime () і функцыі (XOR).

*

Лякалізуюцца радка.

*

Даданне новых ўбудаваных функцый дынамічна з дапамогай функцыі пашырэння ().

Кніга AWK не вызначае вяртаецца значэнне функцыі Close (). Блізка Gawk «s () вяртае значэнне з fclose (3), або pclose (3), пры закрыцці выхаднога файла або трубы, адпаведна. Яна вяртае статус завяршэння працэсу, калі закрыцця ўваходных трубы. Вяртаецца значэнне -1, калі правераны файл, труба або сумесна працэс не быў адкрыты з перанакіраваннем.

Калі прасцяк выклікаецца з опцыяй --traditional, калі ФС аргумент опцыі -F з'яўляецца `` т «», то FS усталёўваецца на сімвал табуляцыі. Звярніце ўвагу , што ўвод прасцяк -F \ т ... проста прыводзіць да таго , абалонка працытаваць `` т, «», і не праходзіць `` \ т «» з опцыяй -F. Паколькі гэта даволі непрыгожа асаблівы выпадак, гэта не паводзіны па змаўчанні. Такія паводзіны таксама не ўзнікае , калі --posix было паказана. Для таго, каб сапраўды атрымаць сімвал табуляцыі ў якасці падзельніка палёў, то лепш за ўсё выкарыстоўваць адзінкавыя двукоссі: прасцяк -F «\ т» ....

Глядзіце іншыя каманды: чакаць , LP , поўны , execv , getfacl , IOCTL , Uniq , rmmod , pvcreate , РШ , Unix2Dos , кал , ФС , кд , iwpriv , swapon , AutoFS , ток , MOTD , бясплатна , LPR , execl , FDISK , на , які , iwconfig , Ifconfig , vgdisplay , адкрытая , lsmod , ntohs , mailq , забіваць , wtmp