англійськафранцузькаіспанська

Ad


Значок OnWorks

gawk - онлайн у хмарі

Запустіть gawk у постачальника безкоштовного хостингу OnWorks через Ubuntu Online, Fedora Online, онлайн-емулятор Windows або онлайн-емулятор MAC OS

Це команда gawk, яку можна запустити в постачальнику безкоштовного хостингу OnWorks за допомогою однієї з наших численних безкоштовних робочих станцій, таких як Ubuntu Online, Fedora Online, онлайн-емулятор Windows або онлайн-емулятор MAC OS

ПРОГРАМА:

ІМ'Я


gawk - мова сканування та обробки шаблонів

СИНТАКСИС


гаук [Параметри стилю POSIX або GNU] -f програмний файл [ -- ] файл...
гаук [ Параметри стилю POSIX або GNU ] [ -- ] програма-текст файл ...

ОПИС


Говк це реалізація Проектом GNU мови програмування AWK. Це відповідає
визначення мови в стандарті POSIX 1003.1. Ця версія в свою чергу є
на основі опису в Команда AWK Програмування Language, Ахо, Керніган і
Вайнбергер. Говк надає додаткові функції, наявні в поточній версії Brian
Кернігана awk і ряд розширень, специфічних для GNU.

Командний рядок складається з параметрів до гаук сам текст програми AWK (якщо не надається
чЕРЕЗ -f or --файл параметри) та значення, які будуть доступні в ARGC та ARGV попередньо
визначені змінні AWK.

Коли гаук викликається за допомогою --профіль опції, він починає збирати статистику профілювання
від виконання програми. Говк в цьому режимі працює повільніше і автоматично
створює профіль виконання у файлі awkprof.out коли зроблено. Див --профіль
варіант, нижче.

Говк також має вбудований налагоджувач. Можна розпочати інтерактивний сеанс налагодження
постачання --відлагоджувати параметр у командному рядку. У цьому режимі виконання, гаук вантажі
вихідний код AWK, а потім запитує команди налагодження. Говк може налагоджувати лише AWK
Джерело програми, що надається разом із -f варіант. Налагоджувач задокументовано в GAWK: Ефективний
AWK Програмування.

ВАРІАНТ ФОРМАТ


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

Говк-конкретні опції зазвичай використовуються у формі довгих опцій. Аргументи до довгих варіантів
або з’єднуються з опцією за допомогою an = знак, без пробілів, або вони можуть бути
надається в наступному аргументі командного рядка. Довгі варіанти можуть бути скороченими, доки
абревіатура залишається унікальною.

Крім того, кожен довгий варіант має відповідну коротку опцію
функціональність може використовуватися зсередини #! виконувані скрипти.

ВАРІАНТИ


Говк приймає наступні варіанти. Спочатку перераховані стандартні параметри, а потім
варіанти для гаук розширення, перераховані в алфавітному порядку за короткими параметрами.

-f програмний файл
--файл програмний файл
Прочитайте джерело програми AWK з файлу програмний файл, а не з першого
аргумент командного рядка. Кілька -f (Або --файл) можна використовувати варіанти.

-F fs
--поля-роздільник fs
Скористайтесь fs для роздільника поля введення (значення FS попередньо визначена змінна).

-v було=Val
--призначити було=Val
Призначте значення Val до змінної було, перед початком виконання програми.
Такі значення змінних доступні для ПОЧАТИ правило програми AWK.

-b
--символи-як-байти
Обробляйте всі вхідні дані як однобайтові символи. Іншими словами, не платіть
Зверніть увагу на інформацію про локаль під час спроби обробити рядки як багатобайтні
символів. --позикс параметр замінює цей параметр.

-c
-- традиційний
Забігай сумісність режим. У режимі сумісності, гаук поводиться ідентично
Брайана Кернігана awk; жодне з специфічних для GNU розширень не розпізнається. Подивитися GNU
Розширення, нижче, для отримання додаткової інформації.

-C
-- авторське право
Надрукуйте коротку версію інформаційного повідомлення про авторські права GNU на стандарті
вивести та успішно вийти.

-d[файл]
--дамп-змінні[=файл]
Надрукуйте відсортований список глобальних змінних, їх типи та кінцеві значення файл. Якщо
немає файл надається, гаук використовує файл з іменем awkvars.out у поточному каталозі.
Наявність списку всіх глобальних змінних — хороший спосіб шукати типографічні
помилки у ваших програмах. Ви також скористаєтеся цим варіантом, якщо у вас є великий
програма з великою кількістю функцій, і ви хочете бути впевнені, що ваші функції цього не мають
ненавмисно використовувати глобальні змінні, які ви мали на увазі локальні. (Це
особливо легко зробити помилку з простими іменами змінних, наприклад i, j, і так далі.)

-D[файл]
--відлагоджувати[=файл]
Увімкнути налагодження програм AWK. За замовчуванням налагоджувач читає команди
інтерактивно з клавіатури (стандартний введення). Необов’язковий файл аргумент
вказує файл зі списком команд для виконання налагоджувачем не-
інтерактивно.

-e програма-текст
--джерело програма-текст
Скористайтесь програма-текст як вихідний код програми AWK. Цей варіант дозволяє легко
перемішування функцій бібліотеки (використовується через -f та --файл варіанти) з джерелом
код, введений у командному рядку. Він призначений в першу чергу для середніх і великих AWK
програми, що використовуються в сценаріях оболонки.

-E файл
--викон файл
Як і в -f, однак, цей параметр є останнім обробленим. Це має бути
використовується з #! сценарії, особливо для програм CGI, щоб уникнути передачі
параметри або вихідний код (!) у командному рядку з URL-адреси. Ця опція вимикає
призначення змінних командного рядка.

-g
--gen-pot
Скануйте та проаналізуйте програму AWK та згенеруйте GNU .горщик (Шаблон переносного об'єкта)
форматувати файл на стандартному виводі із записами для всіх локалізованих рядків у файлі
програма. Сама програма не виконується. Дивіться GNU gettext розподіл для
більше інформації про .горщик файли.

-h
--допомога Надрукуйте відносно короткий підсумок доступних параметрів на стандартному виводі.
(За GNU Кодування Стандарти, ці параметри призводять до негайного успішного виходу.)

-i включати-файл
--включати включати-файл
Завантажте бібліотеку джерел awk. Це шукає бібліотеку за допомогою AWKPATH
змінна середовища. Якщо початковий пошук не вдасться, буде зроблено ще одну спробу
після додавання .awk суфікс. Файл буде завантажено лише один раз (тобто
дублікати усуваються), а код не є основною програмою
джерело

-l либ
-- навантаження либ
Завантажте спільну бібліотеку либ. Це шукає бібліотеку за допомогою AWKLIBPATH
змінна середовища. Якщо початковий пошук не вдасться, буде зроблено ще одну спробу
після додавання суфікса спільної бібліотеки за замовчуванням для платформи. Бібліотека
Очікується, що програма ініціалізації буде названа dl_load().

-L [значення]
--ворс[=значення]
Надайте попередження про сумнівні конструкції або непереносимі в інший AWK
реалізації. З необов’язковим аргументом фатальний, попередження про ворсинки стають фатальними
помилки. Це може бути різким, але його використання, безумовно, буде стимулювати розвиток
більш чистих програм AWK. З необов’язковим аргументом недійсний, лише попередження про
видаються фактично недійсні речі. (Це ще не повністю реалізовано.)

-M
--бігнум
Примусова арифметика довільної точності до чисел. Цей параметр не діє, якщо гаук
не скомпільовано для використання бібліотек GNU MPFR і MP.

-n
--недесяткові дані
Розпізнавати вісімкові та шістнадцяткові значення у вхідних даних. Скористайтесь це варіант з великий
обережно!

-N
--use-lc-numeric
Це змушує гаук щоб використовувати десятковий символ локалі під час аналізу введених даних
дані. Хоча стандарт POSIX вимагає такої поведінки, і гаук робить це коли
--позикс фактично, за замовчуванням слід дотримуватися традиційної поведінки та використовувати a
точка як десяткова кома, навіть у тих країнах, де крапка не є десятковою
точковий характер. Цей параметр замінює поведінку за замовчуванням без повного
драконівська суворість --позикс варіант.

-o[файл]
--гарний друк[=файл]
Виведіть гарну друковану версію програми файл. Якщо ні файл надається,
гаук використовує файл з іменем awkprof.out у поточному каталозі.

-O
-- оптимізувати
Увімкнути оптимізацію у внутрішньому представленні програми. наразі
це включає просту константну згортання та ліквідацію хвостового виклику для рекурсивного
функції The гаук супроводжувач сподівається додати додаткові оптимізації з часом.

-p[проф-файл]
--профіль[=проф-файл]
Почніть сеанс профілювання та надішліть дані профілю проф-файл. За замовчуванням
is awkprof.out. Профіль містить кількість виконання кожного оператора в
програма на лівому полі та кількість викликів функції для кожної визначеної користувачем функції.

-P
--позикс
Це вмикається сумісність режим, з наступними додатковими обмеженнями:

· \x escape-послідовності не розпізнаються.

· Тільки пробіл і табуляція діють як роздільники полів, коли FS встановлено на один пробіл,
новий рядок не робить.

· Не можна продовжувати рядки після ? та :.

· Синонім функц для ключового слова функція не визнається.

· Оператори ** та **= не можна використовувати замість ^ та ^=.

-r
--повторний інтервал
Увімкніть використання інтервал вирази у відповідності регулярних виразів (див регулярний
Вирази, нижче). Інтервальні вирази традиційно не були доступні в
Мова AWK. Стандарт POSIX додав їх, щоб зробити awk та егреп відповідно до
один одного. Вони ввімкнені за замовчуванням, але ця опція залишається для використання з
-- традиційний.

-S
--пісочниця
Runs гаук в режимі пісочниці, вимкнувши system () функція, перенаправлення введення с
getline, перенаправлення виводу з друк та printf, і завантаження динамічних розширень.
Виконання команд (через конвеєри) також вимкнено. Це ефективно блокує a
скрипт від доступу до локальних ресурсів (крім файлів, зазначених на
командний рядок).

-t
-- застарілий
Надайте попередження про конструкції, які не можна переносити в оригінальну версію
UNIX awk.

-V
-- версія
Інформація про версію для друку для цієї конкретної копії гаук на стандартному виході.
Це корисно головним чином для того, щоб дізнатися, чи є поточна копія гаук на вашій системі працює
на сьогодні щодо того, що поширює Free Software Foundation.
Це також корисно під час повідомлення про помилки. (За GNU Кодування СтандартиЦі
варіанти призводять до негайного успішного виходу.)

-- Повідомте про закінчення варіантів. Це корисно для надання додаткових аргументів AWK
сама програма починається з «-». Це забезпечує узгодженість з аргументом
конвенція аналізу, що використовується більшістю інших програм POSIX.

У режимі сумісності будь-які інші параметри позначаються як недійсні, але в іншому випадку
ігнорується. У нормальному режимі, доки надається текст програми, невідомі параметри
передаються програмі AWK у ARGV масив для обробки. Це особливо
корисно для запуску програм AWK через «#!» виконуваний механізм інтерпретатора.

Для сумісності POSIX, -W можна використовувати параметр, а потім назву довгого параметра.

AWK ПРОГРАМА ВИКОНАННЯ


Програма AWK складається з послідовності операторів шаблонної дії та додаткової функції
визначення.

@включати "ім'я файлу"
@load "ім'я файлу"
модель { дію заяви }
функція ім'я(параметр список) { заяви }

Говк спочатку читає джерело програми з програмний файл(s) якщо вказано, з аргументів
до --джерело, або з першого аргументу без параметра в командному рядку. The -f та
--джерело Параметри можна використовувати кілька разів у командному рядку. Говк читає програму
текст, ніби все програмний файлs і вихідні тексти командного рядка були об'єднані
разом. Це корисно для створення бібліотек функцій AWK без необхідності
включити їх у кожну нову програму AWK, яка їх використовує. Він також забезпечує можливість змішування
бібліотечні функції з програмами командного рядка.

Крім того, рядки, що починаються з @включати може використовуватися для включення інших вихідних файлів
вашої програми, що спрощує використання бібліотеки. Це еквівалентно використанню -i варіант.

Рядки, які починаються з @load може використовуватися для завантаження спільних бібліотек у вашу програму. Це
еквівалентно використанню -l варіант.

Змінна середовища AWKPATH визначає шлях пошуку для використання під час пошуку вихідних файлів
названий з -f та -i варіанти. Якщо ця змінна не існує, це шлях за замовчуванням
".:/usr/local/share/awk". (Фактичний каталог може відрізнятися залежно від того, як гаук було
створено та встановлено.) Якщо ім’я файлу дано файлу -f Параметр містить символ «/», ні
виконується пошук шляху.

Змінна середовища AWKLIBPATH визначає шлях пошуку для використання під час пошуку джерела
файли з назвою -l варіант. Якщо ця змінна не існує, це шлях за замовчуванням
"/usr/local/lib/gawk". (Фактичний каталог може відрізнятися залежно від того, як гаук збудований
і встановлено.)

Говк виконує програми AWK у наступному порядку. По-перше, всі присвоєння змінних
вказано через -v варіант виконуються. далі, гаук компілює програму в файл
внутрішня форма. Тоді, гаук виконує код у ПОЧАТИ правило(я) (якщо є), а потім
переходить до читання кожного файлу, названого в ARGV масив (до ARGV[ARGC]). Якщо немає
файли, названі в командному рядку, гаук зчитує стандартний вхід.

Якщо ім’я файлу в командному рядку має вигляд було=Val вона розглядається як змінна
призначення. Змінна було буде присвоєно значення Val. (Це відбувається після будь-якого
ПОЧАТИ правило(я) запущено.) Найкорисніше призначення змінних командного рядка
динамічне присвоєння значень змінним, які AWK використовує для керування тим, як розбивається введення
поля та записи. Це також корисно для контролю стану, якщо потрібно кілька проходів
над одним файлом даних.

Якщо значення конкретного елемента ARGV пусто (""), гаук пропускає його.

Для кожного вхідного файлу, якщо a ПОЧАТИ ФАЙЛ правило існує, гаук виконує пов’язаний код раніше
обробка вмісту файлу. так само, гаук виконує код, пов’язаний з
ENDFILE після обробки файлу.

Для кожного запису у вхідних даних, гаук тести, щоб перевірити, чи відповідає він будь-якому модель в AWK
програма. Для кожного шаблону, якому відповідає запис, гаук виконує пов’язане дію.
Шаблони перевіряються в порядку, в якому вони зустрічаються в програмі.

Нарешті, коли всі вхідні дані вичерпано, гаук виконує код у END правило(я) (якщо
будь-який).

Command Лінія Довідники
Відповідно до POSIX, файли, названі на awk командний рядок має бути текстовими файлами. Поведінка
є ``невизначеними'', якщо вони не є. Більшість версій awk обробляти каталог за командою
рядок як фатальна помилка.

Починаючи з версії 4.0 гаук, каталог у командному рядку видає попередження, але
інакше пропускається. Якщо будь-який з --позикс or -- традиційний тоді надаються варіанти
гаук повертається до розгляду каталогів у командному рядку як фатальної помилки.

ЗМІННІ, ЗАПИСИ І ПОЛЯ


Змінні AWK є динамічними; вони з'являються, коли вперше використовуються. Їхній
значення – це числа з плаваючою комою або рядки, або обидва, залежно від того, як вони
використаний. AWK також має одновимірні масиви; масиви з кількома вимірами можуть бути
змодельований. Говк надає справжні масиви масивів; подивитися Масиви, нижче. Кілька попередньо визначених
змінні встановлюються під час виконання програми; вони описані за потреби та підсумовані нижче.

Records
Зазвичай записи розділяються символами нового рядка. Ви можете контролювати порядок записів
розділені шляхом присвоєння значень вбудованій змінній RS. Якщо RS будь-який окремий символ,
цей символ розділяє записи. інакше RS є регулярним виразом. Текст у
вхідні дані, які відповідають цьому регулярному виразу, відокремлюють запис. Однак у
режим сумісності, для розділення використовується лише перший символ його рядкового значення
записи. Якщо RS встановлюється на нульовий рядок, тоді записи розділяються порожніми рядками.
Коли RS встановлюється на нульовий рядок, символ нового рядка завжди діє як роздільник полів,
на додаток до будь-якої цінності FS може мати.

Поля
Коли кожен вхідний запис читається, гаук розбиває запис на поля, використовуючи значення
FS змінна як роздільник полів. Якщо FS є одним символом, поля розділені символами
той персонаж. Якщо FS є нульовим рядком, то кожен окремий символ стає a
окреме поле. інакше FS Очікується, що буде повний регулярний вираз. В
особливий випадок, що FS є одним пробілом, поля розділені рядами пробілів та/або табуляції
та/або новий рядок. (Але дивіться розділ POSIX СУМІСНІСТЬ, нижче). ПРИМІТКА: Значення
IGNORECASE (див. нижче) також впливає на те, як поля розбиваються, коли FS є регулярним виразом,
і як записи розділяються, коли RS є регулярним виразом.

Якщо ШИРИНА ПОЛЯ змінній встановлюється список чисел, розділених пробілами, кожне поле є
очікується мати фіксовану ширину, і гаук розбиває запис, використовуючи задану ширину.
Значення FS ігнорується. Призначення нового значення FS or FPAT переважає використання
ШИРИНА ПОЛЯ.

Аналогічно, якщо FPAT змінної встановлюється рядок, що представляє регулярний вираз, кожна
поле складається з тексту, який відповідає цьому регулярному виразу. В даному випадку звичайний
вираз описує самі поля, а не текст, який розділяє поля.
Призначення нового значення FS or ШИРИНА ПОЛЯ переважає використання FPAT.

На кожне поле у ​​вхідному записі може посилатися його положення: $1, $2, І так далі. $0
це весь рекорд. На поля не потрібно посилатися константами:

n = 5
друк $n

друкує п’яте поле у ​​вхідному записі.

Змінна NF встановлюється загальна кількість полів у вхідному записі.

Посилання на неіснуючі поля (тобто поля після $NF) створити нульовий рядок.
Однак призначення до неіснуючого поля (наприклад, $(NF+2) = 5) збільшує значення NF,
створює будь-які проміжні поля з нульовим рядком як значенням і викликає значення
of $0 підлягає повторному обчисленню, при цьому поля відокремлюються значенням ОФС. Посилання
до полів із від’ємним номером призводять до фатальної помилки. Декрементування NF викликає значення
поля після нового значення, яке буде втрачено, і значення $0 підлягає перерахуванню, з
поля, розділені значенням ОФС.

Призначення значення існуючому полю спричиняє перебудову всього запису $0 is
посилання. Аналогічно, присвоєння значення $0 викликає повторне розділення запису, створення
нові значення для полів.

Вбудований Змінні
ГовкВбудовані змінні:

ARGC Кількість аргументів командного рядка (не включає параметри для гаук, Або
джерело програми).

АРГІНД Індекс в ARGV поточного файлу, що обробляється.

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

BINMODE У системах без POSIX вказує використання «двійкового» режиму для всіх файлів введення-виводу.
Числові значення 1, 2 або 3 визначають, які вхідні файли, вихідні файли або всі
файли, відповідно, повинні використовувати двійковий ввод-вивод. Рядкові значення "р"або "w"
вкажіть, що вхідні файли або вихідні файли, відповідно, повинні використовувати двійковий файл
I/O. Рядкові значення "rw" or "wr" вкажіть, що всі файли мають використовувати двійковий файл
I/O. Будь-яке інше значення рядка розглядається як "rw", але генерує попередження
повідомлення.

CONVFMT Формат перетворення чисел, "%.6g", за замовчуванням.

СЕРЕДОВИЩЕ Масив, що містить значення поточного середовища. Масив є
індексується змінними середовища, причому кожен елемент є значенням цього
змінна (наприклад, СЕРЕДОВИЩЕ ["ДОМ"] може бути "/home/arnold"). Зміна цього масиву
не впливає на середовище, яке бачать програми, які гаук породжує через
перенаправлення або system () функції.

ERRNO Якщо виникає системна помилка, виконайте переспрямування для getline, під час читання
та цінності getline, або під час а закрити (), То ERRNO міститиме рядок з описом
помилка. Значення підлягає перекладу не англійською мовою.

ШИРИНА ПОЛЯ Список ширини полів, розділений пробілами. Коли встановлено, гаук аналізує вхідні дані
у поля фіксованої ширини, замість використання значення FS змінна як
роздільник полів. Побачити Поля, вище.

ФІЛЕНАМ Ім'я поточного вхідного файлу. Якщо в команді не вказано файли
рядок, значення ФІЛЕНАМ є «-». однак, ФІЛЕНАМ не визначено всередині
ПОЧАТИ правило (якщо не встановлено getline).

ФНР Номер вхідного запису в поточному вхідному файлі.

FPAT Регулярний вираз, що описує вміст полів у записі. Коли
встановити, гаук аналізує введені дані на поля, де поля відповідають звичайним
вираз замість використання значення FS змінна як поле
сепаратор. Подивитися Поля, вище.

FS Роздільник поля введення, пробіл за замовчуванням. Подивитися Поля, вище.

ФУНКТАБ Масив, індекси та відповідні значення якого є іменами всіх користувачів-
визначені функції або функції розширення в програмі. ПРИМІТКА: Ви не можете використовувати
видаляти заява з ФУНКТАБ масив.

IGNORECASE Контролює чутливість до регістру всіх регулярних виразів і рядкових операцій.
If IGNORECASE має ненульове значення, потім порівняння рядків і шаблон
відповідність у правилах, розділення поля с FS та FPAT, запис відокремлюючи с
RS, відповідність регулярного виразу з ~ та !~, А gensub(), gsub(),
індекс (), матч (), patsplit(), розділити () та sub() всі вбудовані функції ігнорують
випадок під час виконання операцій регулярних виразів. ПРИМІТКА: Підписка масиву є
НЕ постраждалих. Однак, сортувати() та асорті () вражаються функції.
Таким чином, якщо IGNORECASE не дорівнює нулю, /aB/ відповідає всім рядкам
"ab", "aB", "Ab" та "АВ". Як і для всіх змінних AWK, початкове значення
IGNORECASE дорівнює нулю, тому всі регулярні вирази та рядкові операції є такими
зазвичай чутливий до регістру.

ЛІНТ Забезпечує динамічне управління --ворс опцію з програми AWK.
Коли правда, гаук друкує попередження про ворс. Якщо помилка, це не так. При призначенні
значення рядка "фатальний", попередження про ворсинки стають фатальними помилками, точно так само
--lint=фатальний. Будь-яке інше істинне значення просто друкує попередження.

NF Кількість полів у поточному вхідному записі.

NR Загальна кількість вхідних записів, переглянутих на даний момент.

OFMT Формат виведення чисел, "%.6g", за замовчуванням.

ОФС Роздільник поля виведення, пробіл за замовчуванням.

ОРС Роздільник вихідного запису, за замовчуванням новий рядок.

ПОПЕР Робоча точність чисел із плаваючою комою довільної точності, 53 байта
за замовчуванням.

ПРОКІНФО Елементи цього масиву забезпечують доступ до інформації про запущений AWK
програма. У деяких системах в масиві можуть бути елементи, "група 1"
через "групаn" для деяких n, що є кількістю додаткових груп, які
процес має. Використовувати in оператор для перевірки цих елементів. The
наступні елементи гарантовано будуть доступні:

PROCINFO["egid"] Значення getegid(2) системний виклик.

PROCINFO["strftime"]
Рядок формату часу за замовчуванням для strftime ().

PROCINFO["euid"] Значення geteuid(2) системний виклик.

PROCINFO["FS"] "FS" якщо поле розділення с FS діє, "FPAT" if
розщеплення поля с FPAT діє, або "ШИРИНА ПОЛЯ"
якщо поле розділення с ШИРИНА ПОЛЯ діє.

PROCINFO["ідентифікатори"]
Підмасив, індексований іменами всіх використаних ідентифікаторів
в тексті програми AWK. Значення вказують на що
гаук знає про ідентифікатори після його завершення
розбір програми; вони є НЕ оновлено під час
програма виконується. Для кожного ідентифікатора значення
елемент є одним із наступних:

"масив"
Ідентифікатор - це масив.

"вбудований"
Ідентифікатор є вбудованою функцією.

"розширення"
Ідентифікатор – це функція розширення, завантажена через
@load or -l.

"скаляр"
Ідентифікатором є скаляр.

"ненабраний"
Ідентифікатор не введений (може використовуватися як a
скаляр або масив, гаук ще не знає).

"користувач" Ідентифікатор — це функція, визначена користувачем.

PROCINFO["gid"] Значення getgid(2) системний виклик.

PROCINFO["pgpid"] Ідентифікатор групи процесів поточного процесу.

PROCINFO["pid"] Ідентифікатор процесу поточного процесу.

PROCINFO["ppid"] Ідентифікатор батьківського процесу поточного процесу.

PROCINFO["uid"] Значення getuid(2) системний виклик.

PROCINFO["sorted_in"]
Якщо цей елемент існує в ПРОКІНФО, потім його значення
контролює порядок проходження елементів масиву
in та цінності петлі. Підтримувані значення "@ind_str_asc",
"@ind_num_asc", "@val_type_asc", "@val_str_asc",
"@val_num_asc", "@ind_str_desc", "@ind_num_desc",
"@val_type_desc", "@val_str_desc", "@val_num_desc" та
"@unsorted". Значенням також може бути ім'я будь-якого
функція порівняння визначається наступним чином:

функція cmp_func(i1, v1, i2, v2)

де i1 та i2 є індексами, і v1 та v2 є
відповідні значення двох елементів, що порівнюються.
Він повинен повертати число менше, дорівнює або більше
ніж 0, залежно від того, як мають бути елементи масиву
бути замовленим.

PROCINFO["вхід", "READ_TIMEOUT"]
Час очікування в мілісекундах для читання даних із вхід,
де вхід це рядок переспрямування або ім’я файлу. Значення
нуль або менше нуля означає відсутність тайм-ауту.

PROCINFO["mpfr_version"]
Версія бібліотеки GNU MPFR, яка використовується для довільних
підтримка чисел точності в гаук. Цей запис не є
присутній, якщо підтримка MPFR не скомпільована гаук.

PROCINFO["gmp_version"]
Версія бібліотеки GNU MP, яка використовується для довільних
підтримка чисел точності в гаук. Цей запис не є
присутній, якщо підтримка MPFR не скомпільована гаук.

PROCINFO["prec_max"]
Максимальна точність, яку підтримує бібліотека GNU MPFR
для чисел з плаваючою комою довільної точності. Це
запис відсутній, якщо підтримка MPFR не скомпільована
гаук.

PROCINFO["prec_min"]
Мінімальна точність, дозволена бібліотекою GNU MPFR для
числа з плаваючою комою довільної точності. Цей запис є
немає, якщо підтримка MPFR не скомпільована гаук.

PROCINFO["api_major"]
Основна версія API розширення. Цей запис не є
присутній, якщо завантаження динамічних розширень недоступне.

PROCINFO["api_minor"]
Друга версія API розширення. Цей запис не є
присутній, якщо завантаження динамічних розширень недоступне.

PROCINFO["версія"] версія гаук.

КРУГЛИЙ РЕЖИМ Режим округлення для довільної точності арифметики чисел на
дефолт "N" (режим IEEE-754 roundTiesToEven). Прийняті значення є "N" or
"n" для roundTiesToEven, "U" or "у" для roundTowardPositive, "D" or "d" та цінності
roundToward Negative, "Z" or "z" для roundTowardZero, а якщо ваша версія
Бібліотека GNU MPFR підтримує це, "А" or "A" для roundTiesToAway.

RS Роздільник вхідного запису, за замовчуванням новий рядок.

RT Термінатор запису. Говк Набори RT до введеного тексту, який відповідає
символ або регулярний вираз, визначений за допомогою RS.

RSTART Індекс першого символу, який відповідає матч (); 0, якщо немає збігу. (Це
означає, що індекси символів починаються з одиниці.)

ДОВЖИНА Довжина рядка відповідає за матч (); -1, якщо не збігається.

СУБСЕП Символ, що використовується для розділення кількох індексів у елементах масиву, by
дефолт "\034".

SYMTAB Масив, індекси якого є іменами всіх поточних визначених глобальних змінних
і масиви в програмі. Масив можна використовувати для непрямого доступу до читання
або напишіть значення змінної:

Foo = 5
SYMTAB["foo"] = 4
друк Foo # друк 4

Команда isarray() функція може використовуватися для перевірки, чи є елемент у SYMTAB є
масив. Ви не можете використовувати видаляти заява з SYMTAB масив.

TEXTDOMAIN Текстовий домен програми AWK; використовується для пошуку локалізованих перекладів
для рядків програми.

Масиви
Масиви мають індексний вираз із квадратними дужками ([ та ]). Якщо
вираз - це список виразів (експр, експр ...), тоді індекс масиву є рядком
що складається з конкатенації (рядкового) значення кожного виразу, розділених символом
значення СУБСЕП змінний. Цей засіб використовується для моделювання багатовимірного
масиви. Наприклад:

i = «А»; j = «Б»; k = "C"
x[i, j, k] = "Здравствуйте, світ\n"

призначає рядок "Здравствуйте, світ\n" до елемента масиву x який індексується
рядок "A\034B\034C". Усі масиви в AWK є асоціативними, тобто індексуються рядковими значеннями.

Спецоператор in можна використовувати для перевірки, чи має масив індекс, що складається з a
особливе значення:

if (вал in масив)
друк масив [val]

Якщо масив має кілька індексів, використовуйте (я, j) in масив.

Команда in конструкція також може використовуватися в a та цінності цикл для перебору всіх елементів an
масив. Однак, (я, j) in масив construct працює лише в тестах, а не в та цінності петлі.

Елемент можна видалити з масиву за допомогою видаляти заяву. видаляти заяву
також можна використовувати для видалення всього вмісту масиву, просто вказавши масив
назва без нижнього індексу.

гаук підтримує справжні багатовимірні масиви. Це не вимагає, щоб такі масиви були
``прямокутний'', як у C або C++. Наприклад:

а[1] = 5
a[2][1] = 6
a[2][2] = 7

ПРИМІТКА: Можливо, вам доведеться розповісти гаук що елемент масиву насправді є підмасивом для використання
це де гаук очікує масив (наприклад, у другому аргументі to розділити ()). Ви можете зробити
це шляхом створення елемента в підмасиві, а потім видалення його за допомогою видаляти
Заява

Змінна Введення і Перетворення
Змінні та поля можуть бути числами (з плаваючою комою) або рядками, або тим і іншим. Як значення
інтерпретація змінної залежить від її контексту. Якщо використовується в числовому виразі,
воно розглядатиметься як число; якщо використовується як рядок, він буде розглядатися як рядок.

Щоб змусити змінну розглядатися як число, додайте до неї 0; щоб змусити його розглядати як a
рядок, об’єднайте його з нульовим рядком.

Неініціалізовані змінні мають числове значення 0 і рядкове значення "" (нуль, або
порожній, рядок).

Коли рядок потрібно перетворити в число, перетворення виконується за допомогою
strtod(3). Число перетворюється на рядок за допомогою значення CONVFMT як формат
рядок для спринт(3) з числовим значенням змінної як аргументом. однак,
незважаючи на те, що всі числа в AWK є з плаваючою комою, інтегральні значення є такими завжди перетворено як
цілі числа. Таким чином, дано

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

змінна b має рядкове значення "12" і ні "12.00".

ПРИМІТКА: Під час роботи в режимі POSIX (наприклад, з --позикс опція), зверніть увагу на цю мову
налаштування можуть заважати обробці десяткових чисел: десятковий роздільник
числа, якими ви годуєте гаук має відповідати тому, що очікує ваша місцевість, будь то a
кома (,) або крапка (.).

Говк виконує порівняння таким чином: якщо дві змінні є числовими, вони порівнюються
чисельно. Якщо одне значення є числовим, а інше має рядкове значення, яке є «числовим
рядок», то порівняння також проводяться чисельно. В іншому випадку числове значення дорівнює
перетворюється на рядок і виконується порівняння рядків. Порівнюються дві струни, оф
звичайно, як струни.

Зверніть увагу, що рядкові константи, наприклад "57", Є НЕ числові рядки, вони рядкові
константи. Ідея «числового рядка» стосується лише полів, getline вхід, ФІЛЕНАМ,
ARGV елементи, СЕРЕДОВИЩЕ елементів та елементів масиву, створеного за допомогою розділити () or
patsplit() які є числовими рядками. Основна ідея така користувач вхід, і тільки користувач
вхідні дані, які виглядають числовими, слід розглядати таким чином.

Восьмий та Шістнадцятковий Константи
Ви можете використовувати вісімкові та шістнадцяткові константи в стилі C у вихідному коді програми AWK. Для
наприклад, вісімкове значення 011 дорівнює десятковій 9, і шістнадцяткове значення 0x11 is
дорівнює десятковому 17.

рядок Константи
Рядкові константи в AWK — це послідовності символів, укладені між подвійними лапками (наприклад
"цінність"). В межах рядків, певна бігти послідовності визнаються, як у C. Це:

\\ Дослівна зворотна коса риса.

\a символ «попередження»; зазвичай символ ASCII BEL.

\b Backspace.

\f Форма-подача.

\n Новий рядок.

\r Повернення карети.

\t Горизонтальна вкладка.

\v Вертикальна вкладка.

\xгекса цифр
Символ, представлений рядком шістнадцяткових цифр після \x. Як
в ISO C усі наступні шістнадцяткові цифри вважаються частиною екранування
послідовність. (Ця функція повинна розповісти нам щось про мовний дизайн by
комітет.) Наприклад, "\x1B" є символом ASCII ESC (escape).

\ддд Символ, представлений 1-, 2- або 3-значною послідовністю вісімкових цифр. наприклад,
"\033" є символом ASCII ESC (escape).

\c Буквальний персонаж c.

Escape-послідовності також можуть використовуватися всередині постійних регулярних виразів (наприклад,
/[ \t\f\n\r\v]/ відповідає пробілам).

У режимі сумісності символи представлені вісімковим і шістнадцятковим escape-кодом
послідовності розглядаються буквально, коли використовуються в константах регулярного виразу. таким чином, /a\52b/
еквівалентна /a\*b/.

ПАРТНЕРИ І ДІЇ


AWK — це лінійно-орієнтована мова. Спочатку з’являється шаблон, а потім дія. Дія
заяви додаються до { та }. Або може бути відсутній шаблон, або дія
відсутні, але, звісно, ​​не обидва. Якщо шаблон відсутній, дія виконується
для кожного окремого запису введення. Відсутня дія еквівалентна

{ друк }

який друкує весь запис.

Коментарі починаються з # символ і продовжуйте до кінця рядка. Порожні рядки
може використовуватися для розділення висловлювань. Зазвичай оператор закінчується новим рядком, однак,
це не стосується рядків, що закінчуються комою, {, ?, :, &&або ||. Рядки, що закінчуються на do
or ще також автоматично продовжують їхні заяви в наступному рядку. в
В інших випадках рядок можна продовжити, закінчивши його символом «\», у цьому випадку буде новий рядок
ігнорується.

Кілька операторів можна помістити в один рядок, розділивши їх знаком «;». Це стосується
як висловлювання в частині дії в парі шаблон-дія (звичайний випадок), так і
до самих операторів шаблону дії.

Шаблони
Шаблони AWK можуть бути одним із таких:

ПОЧАТИ
END
ПОЧАТИ ФАЙЛ
ENDFILE
/регулярний вираз/
реляційні вираз
модель && модель
модель || модель
модель ? модель : модель
(модель)
! модель
pattern1, pattern2

ПОЧАТИ та END це два спеціальні типи шаблонів, які не перевіряються на вхідних даних.
Дія частини всього ПОЧАТИ шаблони об’єднуються так, як ніби всі твердження були
написана в єдиному ПОЧАТИ правило. Вони виконуються перед прочитанням будь-якого введення.
Так само, всі END правила об’єднуються та виконуються, коли всі вхідні дані вичерпано (або
коли вихід оператор виконується). ПОЧАТИ та END візерунки не можна комбінувати з іншими
візерунки у шаблонних виразах. ПОЧАТИ та END шаблони не можуть мати пропущених частин дії.

ПОЧАТИ ФАЙЛ та ENDFILE це додаткові спеціальні шаблони, тіла яких виконані раніше
читання першого запису кожного вхідного файлу командного рядка та після читання останнього запису
кожного файлу. Всередині ПОЧАТИ ФАЙЛ правило, значення ERRNO буде порожнім рядком, якщо
файл було успішно відкрито. Інакше виникла проблема з файлом і файлом
код слід використовувати наступний файл щоб пропустити це. Якщо цього не зробити, гаук виробляє свій звичайний фатальний
помилка для файлів, які неможливо відкрити.

для /регулярний вираз/ шаблонів, асоційований оператор виконується для кожного входу
запис, що відповідає регулярному виразу. Регулярні вирази такі самі, як і в
егреп(1), і узагальнено нижче.

A реляційні вираз може використовувати будь-який з операторів, визначених нижче в розділі про
дії. Зазвичай вони перевіряють, чи відповідають певні поля певним регулярним виразам.

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

Команда ?: Оператор схожий на той самий оператор у C. Якщо перший шаблон істинний, то
шаблон, який використовується для тестування, є другим шаблоном, інакше він третім. Тільки один з
оцінюється другий і третій шаблони.

Команда pattern1, pattern2 Форма виразу називається а діапазон модель. Це відповідає всім
вхідні записи, які починаються із запису, який відповідає pattern1, і продовжується до запису
що збігається pattern2, включно. Він не поєднується з жодним іншим візерунком
вираз.

регулярний Вирази
Регулярні вирази — це розширений вид, який можна знайти в егреп. Вони складаються з персонажів
наступним чином:

c Відповідає неметасимволу c.

\c Відповідає буквальному символу c.

. Відповідає будь-якому символу включаючи новий рядок.

^ Відповідає початку рядка.

$ Збігається з кінцем рядка.

[abc...] Список символів: відповідає будь-якому з символів abc.... Ви можете включити a
діапазон символів, розділяючи їх тире.

[^abc...] Список заборонених символів: відповідає будь-якому символу, крім abc....

r1|r2 Чергування: збігається або r1 or r2.

1 р2 Конкатенація: збігається r1, А потім r2.

r+ Збігається з одним або кількома r's.

r* Відповідає нулю або більше r's.

r? Відповідає нулю або одиниці r's.

(r) Групування: сірники r.

r{n}
r{n,}
r{n,m} Одна або дві цифри в дужках позначають an інтервал вираз. Якщо є
одне число в дужках, попередній регулярний вираз r повторюється n
разів. Якщо є два числа, розділені комою, r повторюється n до m
разів. Якщо є одна цифра, після якої стоїть кома, то r принаймні повторюється
n раз.

\y Збігається з порожнім рядком на початку або в кінці слова.

\B Збігається з порожнім рядком у слові.

\< Збігається з порожнім рядком на початку слова.

\> Відповідає порожньому рядку в кінці слова.

\s Відповідає будь-якому пробілу.

\S Відповідає будь-якому символу без пробілу.

\w Відповідає будь-якому символу, що входить до слова (букві, цифрі або підкресленню).

\W Відповідає будь-якому символу, який не є складовим зі слова.

\` Збігається з порожнім рядком на початку буфера (рядка).

\' Збігається з порожнім рядком у кінці буфера.

Escape-послідовності, які дійсні в рядкових константах (див рядок Константи) є також
дійсні в регулярних виразах.

Характер класів є функцією, представленою в стандарті POSIX. Клас символів - це a
спеціальні позначення для опису списків символів, які мають певний атрибут, але
де самі фактичні символи можуть відрізнятися від країни до країни та/або від країни
набір символів до набору символів. Наприклад, поняття про те, що таке алфавіт
характер відрізняється в США і у Франції.

Клас символів дійсний лише в регулярному виразі всередині дужки символу
список. Класи персонажів складаються з [:, ключове слово, що позначає клас, і :],
Класи символів, визначені стандартом POSIX:

[: alnum:] Алфавітно-цифрові символи.

[:альфа:] Символи алфавіту.

[:пусто:] Символи пробілу або табуляції.

[:cntrl:] Керуючі символи.

[:цифра:] Цифрові символи.

[:граф:] Символи, які можна друкувати та видимі. (Пробіл можна друкувати, але ні
видно, тоді як an a це обидва.)

[:нижній:] Символи алфавіту в нижньому регістрі.

[:print:] Символи для друку (символи, які не є керуючими).

[:punct:] Розділові знаки (символи, які не є буквами, цифрами, контрольними
символи або пробіли).

[:пробіл:] Символи пробілу (наприклад, пробіл, табуляція та подача форми).

[:верхній:] Символи алфавіту у верхньому регістрі.

[:xdigit:] Символи, які є шістнадцятковими цифрами.

Наприклад, до стандарту POSIX, щоб відповідати буквено-цифровим символам, ви мали б
довелося написати /[A-Za-z0-9]/. Якщо ваш набір символів містить інші символи алфавіту,
це не відповідатиме їм, і якщо ваш набір символів порівнюється інакше, ніж ASCII, це
може навіть не відповідати буквено-цифровим символам ASCII. З класами символів POSIX,
ти можеш писати /[[:alnum:]]/, і це відповідає алфавітним і цифровим символам у
ваш набір персонажів, який би він не був.

У списках символів можуть відображатися дві додаткові спеціальні послідовності. Це стосується не-ASCII
набори символів, які можуть мати окремі символи (наз зіставлення елементи) які
представлений більш ніж одним символом, а також кількома символами, які є
еквівалент для зіставлення, або сортування, цілі. (Наприклад, у французькій мові прості «e» та a
"`" з наголосом на могилі є еквівалентними.)

Збирання символів
Символ зіставлення — це багатосимвольний елемент зіставлення, укладений в [. та .].
Наприклад, якщо ch то є елементом порівняння [[.ch.]] є регулярним виразом
який відповідає цьому елементу зіставлення, while [ch] є регулярним виразом, що
також матчі c or h.

Класи еквівалентності
Клас еквівалентності — це специфічна для локалі назва для списку символів, які є
еквівалент. Ім'я вкладено в [= та =]. Наприклад, ім’я e може бути
використовується для представлення всіх «e», «´» і «`». В цьому випадку, [[=e=]] є регулярним
вираз, який відповідає будь-якому з e, або e`.

Ці функції дуже цінні для неангломовних мов. Функціонує бібліотека
Що гаук використовує для відповідності регулярних виразів наразі розпізнає лише символ POSIX
заняття; вони не розпізнають символи зіставлення або класи еквівалентності.

Команда \y, \B, \<, \>, \s, \S, \w, \W, \` та \' оператори специфічні для гаук; вони є
розширення на основі засобів у бібліотеках регулярних виразів GNU.

Різні параметри командного рядка визначають, як гаук інтерпретує символи в звичайному режимі
вирази.

Немає варіантів
У випадку за замовчуванням, гаук надає всі можливості регулярних виразів POSIX
і описані вище оператори регулярних виразів GNU.

--позикс
Підтримуються лише регулярні вирази POSIX, оператори GNU не є особливими.
(Наприклад, \w відповідає літералу w).

-- традиційний
Традиційний UNIX awk регулярні вирази збігаються. Оператори GNU - ні
спеціальні, а інтервальні вирази недоступні. Символи описуються вісімковим числом
і шістнадцяткові вихідні послідовності розглядаються буквально, навіть якщо вони представляють
метасимволи регулярного виразу.

--повторний інтервал
Дозволити інтервальні вирази в регулярних виразах, навіть якщо -- традиційний було
надано

Дії
Оператори дії укладені в дужки, { та }. Операції дії складаються із звичайних
оператори присвоєння, умовні та циклічні оператори, які зустрічаються в більшості мов. Оператори,
керуючі оператори, а також доступні оператори введення/виводу за зразком тих, що містяться в C.

Оператори
Оператори в AWK в порядку зменшення пріоритету:

(...) Групування

$ Польова довідка.

++ -- Інкремент і декремент, як префікс, так і постфікс.

^ Підведення в ступінь (** також можна використовувати, і **= для оператора присвоєння).

+ - ! Унарний плюс, унарний мінус і логічне заперечення.

* / % Множення, ділення та модуль.

+ - Додавання і віднімання.

простір Конкатенація рядків.

| |& Трубопровідний ввод-вивод для getline, друк та printf.

< > <= >= != ==
Звичайні оператори відношень.

~ !~ Відповідність регулярного виразу, відмінена відповідність. ПРИМІТКА: Не використовуйте постійний звичайний
вираз (/foo/) з лівого боку a ~ or !~. Використовуйте лише один на
правосторонній. Вираз /foo/ ~ ехр має те саме значення, що і (($0 ~
/foo/) ~ ехр). Це зазвичай НЕ що ти хочеш.

in Членство в масиві.

&& Логічне І.

|| Логічне АБО.

?: Умовний вираз C. Це має форму вираз 1 ? вираз 2 : вираз 3. Якщо
вираз 1 істина, значення виразу таке вираз 2, інакше так і є вираз 3.
Тільки один із вираз 2 та вираз 3 оцінюється.

= += -= *= /= %= ^=
Призначення. Обидва абсолютне призначення (було = значення) і оператор-присвоєння
(інші форми) підтримуються.

Контроль Заяви
Контрольні заяви такі:

if (стан) заяву [ ще заяву ]
в той час як (стан) заяву
do заяву в той час як (стан)
та цінності (вираз 1; вираз 2; вираз 3) заяву
та цінності (було in масив) заяву
перерву
продовжувати
видаляти масив[індекс]
видаляти масив
вихід [ вираз ]
{ заяви }
перемикання (вираз) {
випадок значення|regex : заяву
...
[ за замовчуванням: заяву ]
}

I / O Заяви
Операції введення/виводу є такими:

закрити(файл [, як]) Закрийте файл, канал або спільну обробку. Необов’язковий як має бути тільки
використовується при закритті одного кінця двосторонньої труби для спільного процесу. Це
також має бути рядковим значенням "до" or "з".

getline Установка $0 з наступного вхідного запису; набір NF, NR, ФНР, RT.

getline <файл Установка $0 з наступного запису файл; встановити NF, RT.

getline було Установка було з наступного вхідного запису; набір NR, ФНР, RT.

getline було <файл Установка було з наступного запису файл, RT.

команда | getline [було]
прогін команда направляючи вихід або в $0 or було, як вище, і
RT.

команда |& getline [було]
прогін команда як спільний процес, який передає вихідні дані $0 or було,
як вище, і RT. Спільні процеси - це а гаук розширення. (команда може
також бути розеткою. Дивіться підрозділ спеціальний філе імен, нижче.)

наступний Зупинити обробку поточного вхідного запису. Наступний вхідний запис
читання та обробка починається спочатку з першого шаблону в AWK
програма. Досягнувши кінця вхідних даних, гаук виконує будь-який
END правило(я).

наступний файл Зупинити обробку поточного вхідного файлу. Прочитаний наступний вхідний запис
надходить із наступного вхідного файлу. ФІЛЕНАМ та АРГІНД оновлюються,
ФНР скидається на 1, і обробка починається спочатку з першого шаблону
у програмі AWK. Після досягнення кінця вхідних даних, гаук
виконує будь-який END правило(я).

друк Роздрукуйте поточний запис. Вихідний запис завершується символом
Значення ОРС.

друк expr-список Роздрукувати вирази. Кожен вираз відокремлюється значенням
ОФС. Вихідний запис завершується значенням ОРС.

друк expr-список >файл Надрукуйте вирази файл. Кожен вираз розділяється символом
Значення ОФС. Вихідний запис завершується значенням
ОРС.

printf fmt, expr-список Формат і друк. Подивитися Команда printf Заява, Нижче.

printf fmt, expr-список >файл
Відформатуйте та роздрукуйте файл.

система (cmd-рядок) Виконайте команду cmd-рядок, і повернути статус виходу. (Це може
недоступні в системах, які не підтримують POSIX.)

flush([файл]) Очистити будь-які буфери, пов’язані з відкритим вихідним файлом або каналом файл.
If файл відсутня або, якщо це нульовий рядок, то скиньте все
вихідні файли та канали.

Допускаються додаткові перенаправлення виводу друк та printf.

друк ... >> файл
Додає вихід до файл.

друк ... | команда
Пише на трубці.

друк ... |& команда
Відправляє дані до спільної обробки або сокета. (Див. також підрозділ спеціальний філе імен,
нижче.)

Команда getline команда повертає 1 у разі успіху, 0 у кінці файлу та -1 у разі помилки. На
помилка, ERRNO встановлюється в рядок, що описує проблему.

ПРИМІТКА: Помилка відкриття двостороннього сокета призводить до повернення нефатальної помилки
функція виклику. Якщо використовується труба, спільна обробка або розетка getline, Або від друк or
printf в циклі, ви повинен використання закрити () щоб створити нові екземпляри команди або
розетка. AWK не закриває автоматично труби, розетки або спільні процеси, коли вони повертаються
EOF.

Команда printf Заява
Версії AWK printf заява і sprintf () функцію (див. нижче) прийняти
такі формати специфікації перетворення:

%c Один символ. Якщо аргумент, що використовується для %c є числовим, воно розглядається як a
символ і надрукований. В іншому випадку аргумент вважається рядком, а аргумент
друкується лише перший символ цього рядка.

%d, %i Десяткове число (ціла частина).

%e, %E Число з плаваючою комою у вигляді [-]d.dddddde[+-]dd, %E формат використовує E
замість e.

%f, %F Число з плаваючою комою у вигляді [-]ддд.dddddd. Якщо системна бібліотека підтримує
це, %F також доступний. Це схоже %f, але використовує великі літери для спец
значення «не число» і «нескінченність». Якщо %F недоступний, гаук використовує %f.

%g, %G Скористайтесь %e or %f перетворення, що коротше, з неістотними нулями
придушені. The %G формат використовує %E замість %e.

%o Вісімкове число без знака (також ціле число).

%u Десяткове число без знака (знову ціле число).

%s Рядок символів.

%x, %X Шістнадцяткове число без знака (ціле число). The %X формат використовує ABCDEF замість
abcdef.

%% Одинокий % характер; жоден аргумент не перетворюється.

Необов’язкові, додаткові параметри можуть лежати між % і контрольний лист:

вважати$ Використовувати вважати'-й аргумент на цьому етапі форматування. Це називається а
позиційний специфікатор і призначений переважно для використання в перекладених версіях
рядки формату, а не в оригінальному тексті програми AWK. Це гаук
розширення.

- Вираз має бути вирівняний по лівому краю в межах свого поля.

простір Для числових перетворень додайте до позитивних значень пробілом і від’ємних значень
зі знаком мінус.

+ Знак плюс, що використовується перед модифікатором ширини (див. нижче), говорить про те, щоб завжди вказувати a
знак для числових перетворень, навіть якщо дані для форматування позитивні. The +
замінює модифікатор простору.

# Використовуйте «альтернативну форму» для певних контрольних літер. Для %o, постачання провідного
нульовий. Для %x та %X, постачання провідного 0x or 0X для відмінного від нуля результату. Для %e, %E,
%f та %F, результат завжди містить десяткову кому. Для %g та %G, трейлінг
нулі з результату не видаляються.

0 Провідний 0 (нуль) діє як прапорець, який вказує на те, що вивод має бути доповнений
нулі замість пробілів. Це стосується лише числових форматів виводу. Це
прапор має ефект лише тоді, коли ширина поля ширша за значення, яке потрібно надрукувати.

' Символ одинарної лапки вказує гаук щоб вставити роздільник тисячі локалі
символ на десяткові числа, а також використовувати десяткову крапку локалі
символ у форматі з плаваючою комою. Для цього потрібна правильна підтримка локалі в
C і у визначенні поточної локалі.

ширина Поле має бути заповнено до цієї ширини. Поле зазвичай заповнюється
просторів. З 0 прапор, він доповнений нулями.

.прец Число, яке визначає точність друку. Для %e, %E, %f та
%F, формати, це визначає кількість цифр, які потрібно надрукувати праворуч
десяткова кома. Для %g та %G форматів, він визначає максимальну кількість
значущі цифри. Для %d, %i, %o, %u, %x та %X форматів, він визначає
мінімальна кількість цифр для друку. Для %s, він визначає максимальну кількість
символи з рядка, який потрібно надрукувати.

Динамічний ширина та прец можливості ISO C printf () підтримуються рутини. А *
замість того чи іншого ширина or прец специфікації призводить до того, що їх значення беруть з
список аргументів до printf or sprintf (). Щоб використовувати специфікатор позиції з динамічним
ширина або точність, подати вважати$ після * у форматному рядку. Наприклад,
"%3$*2$.*1$s".

спеціальний філе імен
Під час виконання переспрямування вводу-виводу з будь-якого друк or printf у файл або через getline від
файл, гаук внутрішньо розпізнає певні спеціальні імена файлів. Ці імена файлів надають доступ
щоб відкрити дескриптори файлів, успадковані від гаукбатьківський процес (зазвичай оболонка). Ці
імена файлів також можна використовувати в командному рядку для іменування файлів даних. Назви файлів:

- Стандартний вхід.

/dev/stdin Стандартний вхід.

/dev/stdout Стандартний вихід.

/dev/stderr Стандартний вихід помилки.

/dev/fd/n Файл, пов'язаний з дескриптором відкритого файлу n.

Вони особливо корисні для повідомлень про помилки. Наприклад:

друк "Ви підірвав це!" > "/dev/stderr"

тоді як в іншому випадку вам довелося б використовувати

друк "Ви підірвав це!" | «кіт 1>&2"

Наступні спеціальні назви файлів можуть використовуватися разом із файлом |& оператор спільного процесу створення
Підключення до мережі TCP/IP:

/inet/tcp/lport/rhost/rport
/inet4/tcp/lport/rhost/rport
/inet6/tcp/lport/rhost/rport
Файли для підключення TCP/IP на локальному порту lport на віддалений хост rhost на пульті дистанційного керування
порт rport. Використовуйте порт 0 щоб система вибрала порт. Використовуйте /inet4 змусити
підключення IPv4, і /inet6 щоб примусово встановити з’єднання IPv6. Звичайна /inet використовує
система за замовчуванням (швидше за все, IPv4).

/inet/udp/lport/rhost/rport
/inet4/udp/lport/rhost/rport
/inet6/udp/lport/rhost/rport
Аналогічно, але використовуйте UDP/IP замість TCP/IP.

Числовий Функції
AWK має такі вбудовані арифметичні функції:

atan2(y, x) Повернути арктангенс р / х в радіанах.

cos (експр) Повернути косинус експр, що в радіанах.

досвід (експр) Показникова функція.

int(експр) Обрізати до цілого числа.

журнал (експр) Функція натурального логарифма.

ранд() Повернути випадкове число N, між 0 і 1, таким, що 0 ≤ N < 1.

гріх (експр) Повернути синус експр, що в радіанах.

sqrt(експр) Повернути квадратний корінь з експр.

Сранд([експр]) Скористайтесь експр як нове насіння для генератора випадкових чисел. Якщо ні експр is
надано, використовуйте час доби. Поверніть попереднє насіння для випадкового
генератор чисел.

рядок Функції
Говк має такі вбудовані рядкові функції:

сорт (s [, d [, як] ]) Поверніть кількість елементів у вихідному масиві s. Сортувати
вміст s використання гаукзвичайні правила порівняння значень і
замінити індекси відсортованих значень s з послідовним
цілі числа, які починаються з 1. Якщо необов’язковий масив призначення d is
зазначений, перший дублікат s в d, а потім відсортуйте d, покинувши
індекси вихідного масиву s без змін. Необов’язковий рядок як
керує напрямком і режимом порівняння. Допустимі значення для
як чи дійсний будь-який із рядків PROCINFO["sorted_in"]. Це
також може бути ім'ям визначеної користувачем функції порівняння як
описано в PROCINFO["sorted_in"].

асорті (s [, d [, як] ])
Поверніть кількість елементів у вихідному масиві s. Поведінка
те саме, що і в сортувати(), за винятком того, що масив індекси він має
використовується для сортування, а не значення масиву. Після завершення масив є
проіндексовані чисельно, а значення відповідають оригіналу
індекси. Вихідні значення втрачені; таким чином надати другий
масив, якщо ви хочете зберегти оригінал. Мета
необов'язковий рядок як є таким, як описано в сортувати() вище.

gensub(r, s, h [, t]) Пошук цільового рядка t для збігів регулярного виразу
r. Якщо h є рядком, що починається з g or G, потім замініть все
матчі r з s. Інакше h є числом, яке вказує на що
матч з r замінити. Якщо t не поставляється, корист $0 замість цього.
У тексті заміни s, послідовність \n, Де n є цифрою
від 1 до 9, може використовуватися для позначення лише відповідного тексту
n'-ий підвираз у дужках. Послідовність \0 представляє
весь відповідний текст, як і персонаж &. На відміну від sub()
та gsub(), змінений рядок повертається як результат
функція, а вихідний цільовий рядок є НЕ змінено.

gsub(r, s [, t]) Для кожного підрядка, що відповідає регулярному виразу r у рядку
t, замініть рядок s, і повернути номер
заміни. Якщо t не поставляється, корист $0. & в
текст заміни замінюється текстом, який був насправді
збігаються. Використовуйте \& щоб отримати буквальний &. (Це має бути введено як
"\\&"; подивитися GAWK: Ефективний AWK Програмування для більш повної дискусії
правил для &'s і зворотні косі риски в тексті заміни
sub(), gsub() та gensub().)

індекс (s, t) Поверніть індекс рядка t у рядку s, або 0, якщо t НЕ
присутній. (Це означає, що індекси символів починаються з одиниці.) Це
є фатальною помилкою для використання константи регулярного виразу t.

довжина([s]) Поверніть довжину рядка s, або довжина $0 if s НЕ
надається. Як нестандартне розширення з аргументом масиву,
довжина() повертає кількість елементів у масиві.

відповідати (s, r [, a]) Поверніть позицію в s де регулярний вираз r відбувається, або
0 якщо r немає, і встановіть значення RSTART та ДОВЖИНА.
Зауважте, що порядок аргументів такий самий, як і для ~ оператор:
вул ~ re. Якщо масив a надається, a очищається, а потім елементи
1 наскрізь n наповнені порціями s що відповідають
відповідний підвираз у дужках in r. 0-й елемент
of a містить частину s відповідає всім регулярним
вираз r. Індекси a[n, "почати"] та a[n, "довжина"]
надайте початковий індекс у рядку та довжині відповідно,
кожного відповідного підрядка.

patssplit(s, a [, r [, сепс] ])
Розріжте нитку s в масив a і масив роздільників сепс
на регулярний вираз r, і повернути кількість полів.
Значення елементів – це частини s що відповідало r. Значення
сепс[i] є роздільником, який з'явився перед a[i+1]. Якщо r
пропущено, FPAT замість цього використовується. Масиви a та сепс він має
очищений першим. Розщеплення веде себе так само, як і розділення поля
з FPAT, описані вище.

розділити (s, a [, r [, сепс] ])
Розріжте нитку s в масив a і масив роздільників сепс
на регулярний вираз r, і повернути кількість полів. Якщо
r пропущено, FS замість цього використовується. Масиви a та сепс він має
очищений першим. сепс[i] є роздільником полів, який відповідає r
між a[i] та a[i+1]. Якщо r є одним пробілом, потім провідним
пробіли в s переходить до додаткового елемента масиву сепс[0] та
кінцевий пробіл переходить до додаткового елемента масиву сепс[n],
де n є поверненим значенням розділити (s, a, r, сепс). Розщеплення
поводиться ідентично описаному вище розділенню поля.

Sprintf (fmt, expr-список) друк expr-список відповідно до fmt, і поверніть отриманий рядок.

strtonum(вул) Вивчити вул, і повернути його числове значення. Якщо вул починається з a
провідний 0, розглядати його як вісімкове число. Якщо вул починається з a
провідний 0x or 0X, розглядати його як шістнадцяткове число. інакше
припустимо, що це десяткове число.

під(r, s [, t]) Так само, як gsub(), але замінити лише перший відповідний підрядок.

substr(s, i [, n]) Повернути щонайбільше n- символьний підрядок s починаючи з i. Якщо n
опущено, використовуйте решту s.

знизити(вул) Поверніть копію рядка вул, з усіма великими символами
in вул перекладені на відповідні аналоги з нижнього регістру.
Неалфавітні символи залишаються без змін.

топ (вул) Поверніть копію рядка вул, з усіма символами нижнього регістру
in вул перекладені на відповідні копії у верхньому регістрі.
Неалфавітні символи залишаються без змін.

Говк багатобайтовий. Це означає що індекс (), довжина(), substr () та матч () всі роботи
з точки зору символів, а не байтів.

Time Функції
Оскільки одним з основних видів використання програм AWK є обробка файлів журналів, які містять час
інформація про штамп, гаук надає наступні функції для отримання відміток часу та
їх форматування.

mktime(datespec)
Черга datespec у відмітку часу тієї ж форми, що повертається системний час () та
повернути результат. The datespec є рядком форми YYYY MM DD HH MM СС[
літній час]. Вміст рядка - це шість або сім чисел
відповідно повний рік, включаючи століття, місяць з 1 по 12, день с
місяць з 1 до 31, година доби з 0 до 23, хвилина від 0 до
59, другий від 0 до 60, і додатковий прапорець переходу на літній час. Цінності
цих чисел не обов'язково перебувати в межах зазначених діапазонів; наприклад, годину
-1 означає 1 годину до півночі. Григоріанський календар з нульовим походженням
припускається, що рік 0 передує 1 і рік -1, що передує 0. Час дорівнює
припускається, що знаходиться в місцевому часовому поясі. Якщо прапор літнього часу позитивний,
за часом вважається літній час; якщо дорівнює нулю, час вважається рівним
бути стандартним часом; і якщо негативний (за замовчуванням), mktime () спроби визначити
чи діє літній час для вказаного часу. Якщо datespec
не містить достатньо елементів або якщо отриманий час виходить за межі діапазону,
mktime () повертає -1.

strftime([формат [, відмітка часу[, utc-прапор]]])
сформований відмітка часу згідно специфікації в формат. Якщо utc-прапор is
присутній і є ненульовим або ненульовим, результат відображається в UTC, інакше результат
за місцевим часом. The відмітка часу має бути тієї самої форми, що й повертається
системний час (). Якщо відмітка часу відсутня, використовується поточний час доби. Якщо формат
відсутній, формат за замовчуванням еквівалентний виводу дата(1) використовується. The
Формат за замовчуванням доступний у PROCINFO["strftime"]. Дивіться специфікацію для
strftime () функція в ISO C для гарантованого перетворення формату
бути доступним.

системний час () Повернути поточний час доби як кількість секунд після епохи
(1970-01-01 00:00:00 UTC у системах POSIX).

Біт Маніпуляції Функції
Говк надає такі функції маніпуляції бітами. Вони працюють шляхом перетворення подвійного
точні значення з плаваючою комою до uintmax_t цілі числа, виконуючи операцію, а потім
перетворення результату назад у з плаваючою комою. Функції:

і(v1, v2 [, ...]) Повернути порозрядне І значень, наданих у списку аргументів.
Їх має бути не менше двох.

compl(Val) Повернути побітове доповнення Val.

lshift(Val, вважати) Поверніть значення Val, зміщений ліворуч вважати біт.

або(v1, v2 [, ...]) Поверніть порозрядне АБО значень, наданих у списку аргументів.
Їх має бути не менше двох.

rshift(Val, вважати) Поверніть значення Val, переміщено праворуч вважати біт.

xor(v1, v2 [, ...]) Повернути порозрядне XOR значень, наданих у списку аргументів.
Їх має бути не менше двох.

тип функція
Наступна функція призначена для використання з багатовимірними масивами.

isarray(x)
Поверніть true if x є масивом, інакше false.

Internationalization Функції
У вашій програмі AWK для перекладу рядків можна використовувати такі функції
під час виконання. Повну інформацію див GAWK: Ефективний AWK Програмування.

bindtextdomain(каталог [, домен])
Вкажіть каталог, де гаук шукає .gmo файли, якщо вони не будуть або
не можна розміщувати в ``стандартних'' місцях (наприклад, під час тестування). Воно повертається
каталог, де домен є "зв'язаним".
За умовчанням домен - це значення TEXTDOMAIN. Якщо каталог є нульовим рядком
(""), потім bindtextdomain() повертає поточну прив’язку для заданого домен.

dcgettext(рядок [, домен [, категорія]])
Поверніть переклад рядок в текстовому домені домен для категорії регіону
категорія. Значення за замовчуванням для домен є поточним значенням TEXTDOMAIN,
значення за замовчуванням для категорія is "LC_MESSAGES".
Якщо ви надаєте значення для категорія, це має бути рядок, що дорівнює одному з відомих
категорії локалі, описані в GAWK: Ефективний AWK Програмування. Ви також повинні
надати текстовий домен. Використовуйте TEXTDOMAIN якщо ви хочете використовувати поточний домен.

dcngettext(string1, string2, номер [, домен [, категорія]])
Поверніть форму множини, яка використовується для номер перекладу string1 та string2 in
текстовий домен домен для категорії регіону категорія. Значення за замовчуванням для домен is
поточне значення TEXTDOMAIN. Значення за замовчуванням для категорія is "LC_MESSAGES".
Якщо ви надаєте значення для категорія, це має бути рядок, що дорівнює одному з відомих
категорії локалі, описані в GAWK: Ефективний AWK Програмування. Ви також повинні
надати текстовий домен. Використовуйте TEXTDOMAIN якщо ви хочете використовувати поточний домен.

ВИЗНАЧЕНИЙ КОРИСТУВАЧЕМ ФУНКЦІЇ


Функції в AWK визначаються таким чином:

функція ім'я(параметр список) { заяви }

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

Оскільки функції спочатку не були частиною мови AWK, положення про local
змінні досить незграбні: вони оголошуються як додаткові параметри в списку параметрів.
Конвенція полягає в тому, щоб відокремити локальні змінні від реальних параметрів додатковими пробілами в
список параметрів. Наприклад:

функція f(p, q, a, b) # a та b він має місцевий
{
...
}

/abc/ { ... ; f(1, 2) ; ... }

Ліва дужка у виклику функції необхідна, щоб одразу слідувати за функцією
ім'я, без будь-яких пробілів. Це дозволяє уникнути синтаксичної двозначності з
оператор конкатенації. Це обмеження не стосується перерахованих вбудованих функцій
вище.

Функції можуть викликати одна одну і бути рекурсивними. Параметри функції використовуються як локальні
змінні ініціалізуються нульовим рядком і нульовим числом після виклику функції.

Скористайтесь повертати експр щоб повернути значення з функції. Повернене значення не визначено, якщо ні
надається значення, або якщо функція повертається шляхом «відпадання» кінця.

Як гаук розширення, функції можуть бути викликані опосередковано. Для цього призначте ім’я
функція, яка буде викликана у вигляді рядка до змінної. Потім використовуйте змінну так, ніби вона
були ім’ям функції з префіксом an @ знак, наприклад:
функція myfunc()
{
друк "myfunc закликав"
...
}

{ ...
the_func = "myfunc"
@the_func() # call через the_func до myfunc
...
}
Починаючи з версії 4.1.2, це працює з визначеними користувачами функціями, вбудованими функціями та
функції розширення.

If --ворс було надано, гаук попереджає про виклики невизначених функцій під час аналізу,
замість під час виконання. Виклик невизначеної функції під час виконання є фатальною помилкою.

Слово функц може використовуватися замість функція, хоча це не підтримується.

ДИНАМІЧНО ЗАВАНТАЖЕННЯ Нове ФУНКЦІЇ


Ви можете динамічно додавати нові вбудовані функції до запуску гаук перекладач з
@load заяву. Повна інформація виходить за рамки цієї сторінки посібника; подивитися GAWK:
Ефективний AWK Програмування.

СИГНАЛИ


Команда гаук Profiler приймає два сигнали. SIGUSR1 змушує дамп профілю та функції
стек викликів до файлу профілю, який є або awkprof.out, або будь-який файл із назвою
з --профіль варіант. Потім він продовжує працювати. ЗДИХАННЯ Причини гаук скинути
стек викликів профілю та функції, а потім вийти.

ІНТЕРНАЦІОНАЛІЗАЦІЯ


Рядкові константи — це послідовності символів, узяті в подвійні лапки. Неанглійською мовою
мовного середовища, можна позначити рядки в програмі AWK як обов’язкові
переклад на місцеву природну мову. Такі рядки позначаються в програмі AWK символом
провідне підкреслення (“_”). Наприклад,

гаук 'ПОЧНІТЬ { друк "Здравствуйте, світ " }'

завжди друкує Здравствуйте, світ. Але,

гаук 'ПОЧНІТЬ { друк _"Здрастуйте, світ " }'

може надрукувати Bonjour, Monde у Франції.

Існує кілька етапів створення та запуску локалізованої програми AWK.

1. Додайте a ПОЧАТИ дію, щоб призначити значення TEXTDOMAIN змінної, щоб встановити текстовий домен
на ім'я, пов'язане з вашою програмою:

ПОЧАТИ { TEXTDOMAIN = "мійпрог" }

Це дозволяє гаук щоб знайти .gmo файл, пов’язаний з вашою програмою. Без цього
крок, гаук використовує повідомлення текстовий домен, який, ймовірно, не містить перекладів
для вашої програми.

2. Позначте всі рядки, які потрібно перекласти, символами підкреслення.

3. При необхідності скористайтеся dcgettext() та / або bindtextdomain() функції у вашій програмі,
в міру необхідності.

4. прогін гаук --gen-pot -f myprog.awk > myprog.pot щоб створити а .горщик файл для вашого
програми.

5. Надайте відповідні переклади, побудуйте та встановіть відповідні .gmo файли.

Особливості інтернаціоналізації детально описані в GAWK: Ефективний AWK
Програмування.

POSIX СУМІСНІСТЬ


Основна мета для гаук є сумісність зі стандартом POSIX, а також з
остання версія Браяна Кернігана awk. До цього кінця, гаук включає в себе наступне
видимі користувачем функції, які не описані в книзі AWK, але є частиною Brian
Версія Кернігана awk, і знаходяться в стандарті POSIX.

У книзі зазначено, що призначення змінної командного рядка відбувається, коли awk інакше б
відкрийте аргумент як файл, який знаходиться після ПОЧАТИ правило виконується. Проте в
попередні реалізації, коли таке призначення з'являлося перед будь-якими іменами файлів, the
відбулося б призначення перед тим ПОЧАТИ правило було запущено. Заявки залежали від
цю «особливість». Коли awk було змінено відповідно до його документації -v варіант для
присвоєння змінних перед виконанням програми було додано для розміщення програм, які
залежало від старої поведінки. (Цю особливість узгодили обидва Bell
Лабораторії та розробники GNU.)

При обробці аргументів, гаук використовує спеціальну опцію «--», щоб повідомити про закінчення
аргументи. У режимі сумісності він попереджає, але в іншому випадку ігнорує невизначені параметри.
У звичайній роботі такі аргументи передаються програмі AWK для її обробки.

Книга AWK не визначає значення, що повертається srand (). У стандарті POSIX це є
повернути початкове значення, яке воно використовувало, щоб дозволити відстежувати послідовності випадкових чисел.
Тому srand () in гаук також повертає поточне насіння.

Інші нові функції: Використання кількох -f варіанти (від MKS awk); то СЕРЕДОВИЩЕ масив;
\a та \v escape-послідовності (зроблено спочатку в гаук і подається назад у Дзвін
Лабораторна версія); в знизити() та верхня частина () вбудовані функції (від Bell
Лабораторна версія); і специфікації перетворення ISO C в printf (зроблено першим в
версія Bell Laboratories).

ІСТОРИЧНИЙ ОСОБЛИВОСТІ


Є одна особливість історичних реалізацій AWK гаук підтримує: можливо
зателефонувати довжина() вбудована функція не тільки без аргументу, але навіть без нього
круглі дужки! таким чином,

a = # Святий Алгол 60, Бетмен!

є таким же, як будь-який з

a = довжина()
a = довжина ($0)

Використання цієї функції є поганою практикою, і гаук видає попередження про його використання, якщо --ворс is
вказано в командному рядку.

GNU Розширення


Говк має занадто велику кількість розширень для POSIX awk. Вони описані в цьому
розділ. Усі описані тут розширення можна вимкнути за допомогою виклику гаук з
-- традиційний or --позикс Варіанти.

Наступні особливості гаук недоступні в POSIX awk.

· Не виконується пошук шляху для файлів, названих через -f варіант. Тому AWKPATH
змінна середовища не є особливою.

· Немає можливості для включення файлів (гаук's @включати механізм).

· Немає можливості для динамічного додавання нових функцій, написаних на C (гаук's @load
механізм).

· \x вихідна послідовність. (Відключено з --позикс.)

· Можливість продовження рядків після ? та :. (Відключено з --позикс.)

· Вісімкові та шістнадцяткові константи в програмах AWK.

· АРГІНД, BINMODE, ERRNO, ЛІНТ, RT та TEXTDOMAIN змінні не є особливими.

· IGNORECASE змінна та її побічні ефекти недоступні.

· ШИРИНА ПОЛЯ розділення полів із змінною та фіксованою шириною.

· FPAT змінна та розділення полів на основі значень полів.

· ПРОКІНФО масив недоступний.

· Використання RS як регулярний вираз.

· Спеціальні імена файлів, доступні для перенаправлення вводу-виводу, не розпізнаються.

· |& оператор для створення спільних процесів.

· ПОЧАТИ ФАЙЛ та ENDFILE спеціальні візерунки відсутні.

· Можливість розділяти окремі символи, використовуючи нульовий рядок як значення FS,
і як третій аргумент до розділити ().

· Необов'язковий четвертий аргумент до розділити () для отримання текстів-роздільників.

· Необов'язковий другий аргумент для закрити () функції.

· Необов'язковий третій аргумент до матч () функції.

· Можливість використовувати специфікатори позицій з printf та sprintf ().

· Можливість передати масив до довжина().

· і(), сортувати(), асорті (), bindtextdomain(), compl(), dcgettext(), dcngettext(),
gensub(), lshift(), mktime (), або (), patsplit(), rshift(), strftime (), strtonum(),
системний час () та xor() функції.

· Локалізовані рядки.

Книга AWK не визначає значення, що повертається закрити () функції. Говк's закрити ()
повертає значення з закрити(3), або pcclose(3), закриваючи вихідний файл або канал,
відповідно. Він повертає статус завершення процесу під час закриття вхідного каналу. The
повертається значення -1, якщо названий файл, канал або спільний процес не було відкрито за допомогою a
перенаправлення.

Коли гаук викликається за допомогою -- традиційний варіант, якщо fs аргумент до -F опція
«т», тоді FS встановлюється символ табуляції. Зауважте, що введення тексту гаук -Ф\т ... просто викликає
оболонка в лапки «t» і не передає «\t» до -F варіант. Оскільки це а
досить потворний окремий випадок, це не поведінка за замовчуванням. Така поведінка також ні
виникають, якщо --позикс було вказано. Щоб дійсно отримати символ табуляції як поле
роздільник, найкраще використовувати одинарні лапки: гаук -F'\t' ....

НАВКОЛИШНЄ СЕРЕДОВИЩЕ ЗМІННІ


Команда AWKPATH Змінну середовища можна використовувати для надання списку каталогів, які гаук
здійснює пошук під час пошуку файлів, названих через -f, --файл, -i та --включати варіанти. Якщо
початковий пошук не вдається, шлях знову шукається після додавання .awk до імені файлу.

Команда AWKLIBPATH Змінну середовища можна використовувати для надання списку каталогів, які гаук
здійснює пошук під час пошуку файлів, названих через -l та -- навантаження Варіанти.

Команда GAWK_READ_TIMEOUT Змінну середовища можна використовувати, щоб вказати час очікування в
мілісекунди для зчитування вхідних даних з терміналу, каналу або двостороннього зв’язку, в тому числі
розетки.

Для підключення до віддаленого хоста через сокет, GAWK_SOCK_RETRIES контролює кількість
повторних спроб і GAWK_MSEC_SLEEP і інтервал між повторними спробами. Інтервал в
мілісекунд. На системах, які не підтримуються заснути(3), значення округляється до а
ціла кількість секунд.

If POSIXLY_CORRECT то існує в навколишньому середовищі гаук поводиться саме так, ніби --позикс було
вказано в командному рядку. Якщо --ворс було зазначено, гаук видає попередження
повідомлення про це.

EXIT СТАТУС


Якщо вихід тоді оператор використовується зі значенням гаук виходить із заданим числовим значенням
до цього

В іншому випадку, якщо не було проблем під час виконання, гаук виходить зі значенням C
постійна EXIT_SUCCESS. Зазвичай це нуль.

Якщо виникає помилка, гаук виходить із значенням константи C EXIT_FAILURE, Це
зазвичай один.

If гаук виходить через фатальну помилку, статус виходу дорівнює 2. У системах без POSIX це
значення може бути зіставлено на EXIT_FAILURE.

Версія ІНФОРМАЦІЯ


Документи цієї сторінки керівництва гаук, версія 4.1.

AUTHORS


Оригінальна версія UNIX awk був розроблений і реалізований Альфредом Ахо, Пітером
Вайнбергер і Браян Керніган з Bell Laboratories. Браян Керніган продовжує
підтримувати та покращувати його.

Написали Пол Рубін і Джей Фенласон з Фонду вільного програмного забезпечення гаук, щоб бути сумісними
з оригінальною версією awk поширюється в сьомому виданні UNIX. Джон Вудс
вніс ряд виправлень помилок. Девід Труман за участі Арнольда Роббінса,
made гаук сумісний з новою версією UNIX awk. Арнольд Роббінс - це течія
супроводжувач.

Читати GAWK: Ефективний AWK Програмування для повного списку учасників гаук і її
документація.

Див README файл у файлі гаук розповсюдження актуальної інформації про супроводжувачів
і які порти зараз підтримуються.

BUG ЗВІТИ


Якщо ви виявите помилку в гаук, надішліть електронною поштою на адресу [захищено електронною поштою]. Будь ласка
включити вашу операційну систему та її версію, версію гаук (Від гаук -- версія),
який компілятор C ви використовували для його компіляції, а також тестову програму та дані, які не мають розміру
можливо для відтворення проблеми.

Перш ніж надсилати звіт про помилку, виконайте наведені нижче дії. Спочатку переконайтеся, що у вас є
останню версію гаук. Багато помилок (зазвичай непомітні) виправляються під час кожного випуску,
і якщо ваша застаріла, можливо, проблема вже вирішена. По-друге, подивіться
якщо встановлюється змінна середовища LC_ALL до LC_ALL=C змушує речі поводитися так, як ви
очікувати. Якщо так, то це проблема з місцевим стандартом, яка насправді може бути помилкою, а може й ні. Нарешті, будь ласка
уважно прочитайте цю довідкову сторінку та довідковий посібник, щоб переконатися, що те, що ви вважаєте, є a
помилка дійсно є, а не просто дивацтво в мові.

Що б ви не робили, робіть НЕ опублікувати звіт про помилку comp.lang.awk. Поки що гаук розробників
час від часу читайте цю групу новин, публікуючи повідомлення про помилки, є ненадійний спосіб повідомити
помилки. Замість цього, будь ласка, використовуйте адреси електронної пошти, наведені вище. Справді.

Якщо ви використовуєте систему на основі GNU/Linux або BSD, ви можете надіслати звіт про помилку до
постачальника вашого дистрибутива. Це добре, але, будь ласка, надішліть копію посадовій особі
також електронну адресу, оскільки немає гарантії, що звіт про помилку буде переслано
гаук супроводжувач.

Використовуйте gawk онлайн за допомогою служб onworks.net


Безкоштовні сервери та робочі станції

Завантажте програми для Windows і Linux

Команди Linux

Ad