АнглийскийФранцузскийИспанский

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] [ -- ] текст программы файл ...

ОПИСАНИЕ


глазеть является реализацией языка программирования AWK в рамках проекта GNU. Он соответствует
определение языка в стандарте POSIX 1003.1. Эта версия, в свою очередь,
на основе описания в Ассоциация AWK Программирование Язык, Ахо, Керниган и
Вайнбергер. глазеть предоставляет дополнительные функции, имеющиеся в текущей версии Brian
Керниган AWK и ряд специфичных для GNU расширений.

Командная строка состоит из параметров для простофиля сам текст программы AWK (если не указан
через -f or --файл options), и значения, которые будут доступны в АРГК и АРГВ пред-
определены переменные AWK.

После появления простофиля вызывается с --профиль опция, он начинает сбор статистики профилирования
от выполнения программы. глазеть в этом режиме работает медленнее и автоматически
создает профиль выполнения в файле awkprof.out когда закончите. Увидеть --профиль
вариант ниже.

глазеть также имеет встроенный отладчик. Интерактивный сеанс отладки можно запустить с помощью
поставляя --отлаживать параметр в командной строке. В этом режиме исполнения простофиля грузы
исходный код AWK, а затем запрашивает команды отладки. глазеть может только отлаживать AWK
исходный код программы, поставляемый с -f вариант. Отладчик задокументирован в ГАВК: Эффективный
AWK Программирование.

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


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

глазеть-специфические опции обычно используются в форме длинных опций. Аргументы в пользу длинных вариантов
либо соединены с опцией = знак, без пробелов, или они могут быть
предоставляется в следующем аргументе командной строки. Длинные варианты могут быть сокращены до тех пор, пока
сокращение остается уникальным.

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

ДОПОЛНИТЕЛЬНЫЕ УСЛУГИ, НЕ ВКЛЮЧЕННЫЕ В ПАКЕТ


глазеть принимает следующие варианты. Сначала перечислены стандартные параметры, затем следуют
варианты для простофиля расширения, перечисленные в алфавитном порядке с помощью краткого выбора.

-f программный файл
--файл программный файл
Прочтите исходный код программы AWK из файла программный файл, а не с первого
аргумент командной строки. Несколько -f (или --файл) можно использовать.

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

-v вар=волна
--назначать вар=волна
Присвойте значение волна к переменной вар, до начала выполнения программы.
Такие значения переменных доступны для НАЧАТЬ правило программы AWK.

-b
- символы как байты
Считайте все входные данные однобайтовыми символами. Другими словами, не платите
внимание к информации о локали при попытке обработать строки как многобайтовые
символы. В --posix вариант отменяет этот.

-c
- традиционный
Вбежать совместимость режим. В режиме совместимости простофиля ведет себя идентично
Брайан Керниган AWK; ни одно из расширений, специфичных для GNU, не распознается. Видеть GNU
РАСШИРЕНИЯниже для получения дополнительной информации.

-C
--авторское право
Распечатайте краткую версию информационного сообщения об авторских правах GNU на стандартном
выход и выход успешно.

-d[файл]
--dump-переменные[=файл]
Распечатайте отсортированный список глобальных переменных, их типов и окончательных значений в файл. Если
нет файл предоставлен, простофиля использует файл с именем awkvars.out в текущем каталоге.
Список всех глобальных переменных - хороший способ найти типографские
ошибки в ваших программах. Вы также можете использовать эту опцию, если у вас большой
программа с большим количеством функций, и вы хотите быть уверены, что ваши функции не
непреднамеренно использовать глобальные переменные, которые должны быть локальными. (Это
особенно простая ошибка, которую можно сделать с простыми именами переменных, например i, j, и так далее.)

-D[файл]
--отлаживать[=файл]
Включите отладку программ AWK. По умолчанию отладчик читает команды
интерактивно с клавиатуры (стандартный ввод). Необязательный файл аргумент
указывает файл со списком команд для отладчика для выполнения не-
интерактивно.

-e текст программы
--источник текст программы
Используйте текст программы как исходный код программы AWK. Эта опция позволяет легко
смешивание библиотечных функций (используется через -f и --файл options) с источником
код, введенный в командной строке. Он предназначен в первую очередь для средних и крупных AWK.
программы, используемые в сценариях оболочки.

-E файл
--exec файл
Похожий на что -fОднако этот вариант обрабатывается последним. Это должно быть
используется с #! сценарии, особенно для приложений CGI, чтобы избежать передачи
параметры или исходный код (!) в командной строке из URL-адреса. Эта опция отключает
присвоения переменных командной строки.

-g
--ген-горшок
Отсканируйте и проанализируйте программу AWK и создайте GNU .горшок (Переносимый шаблон объекта)
форматировать файл на стандартный вывод с записями для всех локализуемых строк в
программа. Сама программа не выполняется. См. GNU Gettext распространение для
больше информации о .горшок файлы.

-h
--Помогите Напечатайте сравнительно краткую сводку доступных опций на стандартный вывод.
(Согласно GNU Кодирование Стандартный, эти параметры вызывают немедленный успешный выход.)

-i включаемый файл
--включают включаемый файл
Загрузите исходную библиотеку awk. Это ищет библиотеку с помощью ПУТЬ AWKPATH
переменная окружения. Если первоначальный поиск не удастся, будет сделана еще одна попытка.
после добавления .awk суффикс. Файл будет загружен только один раз (т. Е.
дубликаты удаляются), и код не составляет основную программу
источник.

-l Lib
--нагрузка Lib
Загрузить общую библиотеку Lib. Это ищет библиотеку с помощью АВКЛИБПУТЬ
переменная окружения. Если первоначальный поиск не удастся, будет сделана еще одна попытка.
после добавления суффикса разделяемой библиотеки по умолчанию для платформы. Библиотека
Ожидается, что процедура инициализации будет называться dl_load ().

-L [ценностное ]
--линт[=ценностное ]
Предоставление предупреждений о конструкциях, которые являются сомнительными или непереносимыми для других AWK.
реализации. С необязательным аргументом роковой, предупреждения о ворсинах становятся фатальными
ошибки. Это может быть радикально, но его использование, безусловно, будет способствовать развитию
чистых программ AWK. С необязательным аргументом недействительный, только предупреждения о
выдаются фактически недействительные вещи. (Это еще не полностью реализовано.)

-M
--бигнум
Применять арифметические операции произвольной точности к числам. Эта опция не действует, если простофиля
не скомпилирован для использования библиотек GNU MPFR и MP.

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

-N
--use-lc-числовой
Это заставляет простофиля использовать десятичный знак языкового стандарта при синтаксическом анализе ввода
данные. Хотя стандарт POSIX требует такого поведения, и простофиля делает это, когда
--posix действует, по умолчанию следует традиционное поведение и использовать
точка как десятичная точка, даже в тех странах, где точка не является десятичной.
точечный символ. Этот параметр отменяет поведение по умолчанию, без полного
драконовская строгость --posix опцию.

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

-O
- оптимизировать
Включите оптимизацию внутреннего представления программы. В настоящее время,
это включает в себя простое сворачивание констант и исключение хвостового вызова для рекурсивных
функции. простофиля Сопровождающий надеется со временем добавить дополнительные оптимизации.

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

-P
--posix
Это включается совместимость режим со следующими дополнительными ограничениями:

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

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

· Вы не можете продолжать строки после ? и :.

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

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

-r
--re-интервал
Разрешить использование интервал выражения при сопоставлении регулярных выражений (см. Стандарт
Expressions, ниже). Выражения с интервалом традиционно не были доступны в
Язык AWK. Стандарт POSIX добавил их, чтобы AWK и задать расширенное в соответствии с
друг с другом. Они включены по умолчанию, но этот параметр остается для использования с
- традиционный.

-S
- песочница
Работает простофиля в режиме песочницы, отключив система() функция, перенаправление ввода с
Getline, перенаправление вывода с Распечатать и Printfи загрузка динамических расширений.
Выполнение команд (через конвейеры) также отключено. Это эффективно блокирует
скрипт от доступа к локальным ресурсам (кроме файлов, указанных в
командная строка).

-t
- старый
Предоставить предупреждения о конструкциях, которые не переносятся в исходную версию
UNIX AWK.

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

-- Подайте сигнал об окончании вариантов. Это полезно, чтобы разрешить дополнительные аргументы AWK
Сама программа должна начинаться со знака «-». Это обеспечивает согласованность с аргументом
соглашение о синтаксическом анализе, используемое в большинстве других программ POSIX.

В режиме совместимости любые другие параметры помечаются как недопустимые, но в противном случае
игнорируется. При нормальной работе, пока указан текст программы, неизвестные параметры
передаются программе AWK в АРГВ массив для обработки. Это особенно
полезно для запуска программ AWK с помощью символа «#!» исполняемый механизм интерпретатора.

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

AWK ПРОГРАММА ИСПОЛНЕНИЕ


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

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

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

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

Строки, начинающиеся с @нагрузка может использоваться для загрузки разделяемых библиотек в вашу программу. Этот
эквивалентно использованию -l опцию.

Переменная окружения ПУТЬ AWKPATH указывает путь поиска для использования при поиске исходных файлов
названный с -f и -i параметры. Если эта переменная не существует, путь по умолчанию -
".: / usr / local / share / awk". (Фактический каталог может отличаться в зависимости от того, как простофиля законопроект
построен и установлен.) Если имя файла присвоено -f опция содержит символ «/», нет
поиск пути выполняется.

Переменная окружения АВКЛИБПУТЬ указывает путь поиска для использования при поиске источника
файлы, названные с -l вариант. Если эта переменная не существует, путь по умолчанию -
"/ usr / local / lib / gawk". (Фактический каталог может отличаться в зависимости от того, как простофиля было создано
и установлен.)

глазеть выполняет программы AWK в следующем порядке. Во-первых, все присвоения переменных
указано через -v вариант выполняются. Следующий, простофиля компилирует программу в
внутренняя форма. Потом, простофиля выполняет код в НАЧАТЬ правила (если есть), а затем
переходит к чтению каждого файла, указанного в АРГВ массив (до ARGV [ARGC]). Если нет
файлы, названные в командной строке, простофиля читает стандартный ввод.

Если имя файла в командной строке имеет вид вар=волна он рассматривается как переменная
назначение. Переменная вар будет присвоено значение волна. (Это происходит после любого
НАЧАТЬ правила). Назначение переменных командной строки наиболее полезно для
динамическое присвоение значений переменным, которые AWK использует для управления разбивкой входных данных на
поля и записи. Это также полезно для управления состоянием, если требуется несколько проходов.
над одним файлом данных.

Если значение того или иного элемента АРГВ пустой (""), простофиля пропускает это.

Для каждого входного файла, если НАЧАТЬ правило существует, простофиля выполняет связанный код перед
обработка содержимого файла. Сходным образом, простофиля выполняет код, связанный с
КОНЕЦФАЙЛ после обработки файла.

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

Наконец, когда все входные данные исчерпаны, простофиля выполняет код в END правило (а) (если
любой).

Command линия Справочники
Согласно POSIX, файлы, названные в AWK Командная строка должна быть текстовыми файлами. Поведение
является `` неопределенным '', если это не так. Большинство версий AWK лечить каталог по команде
линия как фатальная ошибка.

Начиная с версии 4.0 простофиля, каталог в командной строке выдает предупреждение, но
в противном случае пропускается. Если любой из --posix or - традиционный варианты даны, то
простофиля возвращается к обработке каталогов в командной строке как фатальной ошибке.

ПЕРЕМЕННЫЕ, РЕКОРДЫ И ПОЛЯ


Переменные AWK динамические; они возникают при первом использовании. Их
значения являются либо числами с плавающей запятой, либо строками, либо и тем, и другим, в зависимости от того, как они
использовал. AWK также имеет одномерные массивы; массивы с несколькими измерениями могут быть
смоделировано. глазеть предоставляет истинные массивы массивов; видеть Массивы, ниже. Несколько предопределенных
переменные устанавливаются при запуске программы; они описаны по мере необходимости и кратко изложены ниже.

документация
Обычно записи разделяются символами новой строки. Вы можете контролировать, как записи
разделены присвоением значений встроенной переменной RS. Если RS любой одиночный символ,
этот символ разделяет записи. Иначе, RS является регулярным выражением. Текст в
ввод, соответствующий этому регулярному выражению, разделяет запись. Однако в
режим совместимости, только первый символ его строкового значения используется для разделения
записей. Если RS устанавливается на пустую строку, тогда записи разделяются пустыми строками.
После появления RS установлена ​​на пустую строку, символ новой строки всегда действует как разделитель полей,
в дополнение к любому значению FS можно иметь.

Поля
При чтении каждой входной записи простофиля разбивает запись на поля, используя значение
FS переменная в качестве разделителя полей. Если FS является одним символом, поля разделяются символом
этот персонаж. Если FS является пустой строкой, тогда каждый отдельный символ становится
отдельное поле. Иначе, FS ожидается полное регулярное выражение. в
особый случай, который FS представляет собой единый пробел, поля разделяются пробелами и / или табуляциями
и / или новые строки. (Но см. Раздел POSIX СОВМЕСТИМОСТЬниже). ЗАМЕТКА: Значение
ИГНОРИРОВАТЬ (см. ниже) также влияет на то, как поля разделяются, когда FS регулярное выражение,
и как разделяются записи, когда RS является регулярным выражением.

Если же линия индикатора ПОЛЯ переменная установлена ​​в список чисел, разделенных пробелами, каждое поле
как ожидается, будет иметь фиксированную ширину, и простофиля разделяет запись с использованием указанной ширины.
Значение FS игнорируется. Присвоение нового значения FS or ФПАТ отменяет использование
ПОЛЯ.

Точно так же, если ФПАТ переменная устанавливается в строку, представляющую регулярное выражение, каждое
поле состоит из текста, соответствующего этому регулярному выражению. В этом случае обычный
выражение описывает сами поля, а не текст, разделяющий поля.
Присвоение нового значения FS or ПОЛЯ отменяет использование ФПАТ.

На каждое поле во входной записи можно ссылаться по его положению: $1, $2, И так далее. $0
это вся запись. На поля не обязательно ссылаться константами:

n = 5
Распечатать $n

печатает пятое поле входной записи.

Переменная NF устанавливается равным общему количеству полей во входной записи.

Ссылки на несуществующие поля (т. Е. Поля после $ NF) производят нулевую строку.
Однако присвоение несуществующему полю (например, $ (NF + 2) = 5) увеличивает значение NF,
создает любые промежуточные поля с нулевой строкой в ​​качестве их значений и вызывает значение
of $0 для повторного вычисления, при этом поля разделяются значением ОФС. Рекомендации
использование полей с отрицательными номерами приводит к фатальной ошибке. Уменьшение NF вызывает ценности
поля после нового значения, которое будет потеряно, и значение $0 быть пересчитанным, с
поля разделяются значением ОФС.

Присвоение значения существующему полю приводит к перестроению всей записи, когда $0 is
упоминается. Точно так же присвоение значения $0 вызывает повторное разделение записи, создавая
новые значения для полей.

Встроенный Переменные
глазетьвстроенные переменные:

АРГК Количество аргументов командной строки (не включает параметры для простофиля, или
исходный код программы).

АРГИНД Индекс в АРГВ текущего обрабатываемого файла.

АРГВ Массив аргументов командной строки. Массив индексируется от 0 до АРГК - 1.
Динамическое изменение содержимого АРГВ может управлять файлами, используемыми для данных.

РЕЖИМ БИН В системах, отличных от POSIX, указывает использование «двоичного» режима для всех файловых операций ввода-вывода.
Числовые значения 1, 2 или 3 указывают, что входные файлы, выходные файлы или все
файлы, соответственно, должны использовать двоичный ввод-вывод. Строковые значения "р"или "ш"
укажите, что входные файлы или выходные файлы, соответственно, должны использовать двоичные
Ввод / вывод. Строковые значения "rw" or "wr" укажите, что все файлы должны использовать двоичный
Ввод / вывод. Любое другое строковое значение рассматривается как "rw", но выдает предупреждение
сообщение.

КОНВФМТ Формат преобразования чисел, "% .6g", по умолчанию.

ОКРУЖАЮЩАЯ СРЕДА Массив, содержащий значения текущего окружения. Массив
индексируется переменными среды, каждый элемент является значением этого
переменная (например, ОКРУЖЕНИЕ ["ДОМ"] возможно "/ главная / арнольд"). Изменение этого массива
не влияет на среду, видимую программами, которые простофиля нерестится через
перенаправление или система() функции.

ОШИБКА Если возникает системная ошибка, выполните перенаправление для Getline, во время чтения
для Getline, или во время близко(), то ОШИБКА будет содержать строку, описывающую
Ошибка. Значение подлежит переводу в языковых стандартах, отличных от английского.

ПОЛЯ Список значений ширины полей, разделенных пробелами. Когда установлено, простофиля анализирует ввод
в поля фиксированной ширины вместо использования значения FS переменная как
разделитель полей. Видеть Поля, выше.

ИМЯ ФАЙЛА Имя текущего входного файла. Если в команде не указаны файлы
линия, значение ИМЯ ФАЙЛА является "-". Тем не мение, ИМЯ ФАЙЛА не определено внутри
НАЧАТЬ правило (если не установлено Getline).

FNR Номер входной записи в текущем входном файле.

ФПАТ Регулярное выражение, описывающее содержимое полей в записи. Когда
задавать, простофиля анализирует ввод в поля, где поля соответствуют обычным
выражение, вместо использования значения FS переменная как поле
разделитель. Видеть Поля, выше.

FS Разделитель поля ввода, по умолчанию пробел. Видеть Поля, выше.

ФУНКТАБ Массив, индексы и соответствующие значения которого являются именами всех пользователей.
определенные или расширенные функции в программе. ЗАМЕТКА: Вы не можете использовать
удалять заявление с ФУНКТАБ массив.

ИГНОРИРОВАТЬ Управляет чувствительностью к регистру всех регулярных выражений и строковых операций.
If ИГНОРИРОВАТЬ имеет ненулевое значение, тогда сравнения строк и шаблон
соответствие в правилах, разделение полей с помощью FS и ФПАТ, запись с разделением
RS, совпадение регулярного выражения с ~ и !~, и gensub (), gsub (),
индекс(), матч(), patsplit (), расколоть()качества sub () все встроенные функции игнорируют
случай при выполнении операций с регулярными выражениями. ЗАМЕТКА: Индекс массива
не затронутый. Однако asort () и asorti () функции затронуты.
Таким образом, если ИГНОРИРОВАТЬ не равно нулю, / aB / соответствует всем строкам
"ab", "AB", "Ab"качества "AB". Как и для всех переменных AWK, начальное значение
ИГНОРИРОВАТЬ равен нулю, поэтому все регулярные выражения и строковые операции
обычно с учетом регистра.

ЛИНТ Обеспечивает динамическое управление --линт вариант из программы AWK.
Когда это правда, простофиля печатает предупреждения о ворсинах. Когда ложно, это не так. При назначении
строковое значение "фатальный", предупреждения о ворсинках становятся фатальными ошибками, как и
--lint = фатальный. Любое другое истинное значение просто выводит предупреждения.

NF Количество полей в текущей входной записи.

NR Общее количество просмотренных входных записей.

ОФМТ Формат вывода чисел, "% .6g", по умолчанию.

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

ORS Разделитель выходной записи, по умолчанию перевод строки.

ПРЕК Рабочая точность чисел произвольной точности с плавающей запятой, 53 на
по умолчанию.

ПРОЦИНФО Элементы этого массива предоставляют доступ к информации о запущенном AWK.
программа. В некоторых системах в массиве могут быть элементы, "группа 1"
через "группаn" для некоторых n, которое представляет собой количество дополнительных групп, которые
процесс имеет. Использовать in оператор для проверки этих элементов. В
Гарантированно доступны следующие элементы:

PROCINFO ["egid"] Значение Getegid(2) системный вызов.

PROCINFO ["strftime"]
Строка формата времени по умолчанию для strftime ().

PROCINFO ["euid"] Значение получить(2) системный вызов.

ПРОЦИНФО ["ПС"] «ФС» если разделение поля с FS действует, «ФПАТ» if
разделение поля с помощью ФПАТ действует, или "FIELDWIDTHS"
если разделение поля с ПОЛЯ действует.

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

"множество"
Идентификатор - это массив.

"встроенный"
Идентификатор - это встроенная функция.

"расширение"
Идентификатор - это функция расширения, загружаемая через
@нагрузка or -l.

"скаляр"
Идентификатор - это скаляр.

"нетипизированный"
Идентификатор не типизирован (может использоваться как
скаляр или массив, простофиля пока не знаю).

«Пользователь» Идентификатор - это функция, определяемая пользователем.

ПРОЦИНФО ["гид"] Значение Getgid(2) системный вызов.

PROCINFO ["pgrpid"] Идентификатор группы процессов текущего процесса.

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

PROCINFO ["ppid"] Идентификатор родительского процесса текущего процесса.

PROCINFO ["uid"] Значение Getuid(2) системный вызов.

PROCINFO ["отсортировано в"]
Если этот элемент существует в ПРОЦИНФО, то его значение
контролирует порядок обхода элементов массива
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 ["пред_мин"]
Минимальная точность, разрешенная библиотекой GNU MPFR для
числа произвольной точности с плавающей запятой. Эта запись
отсутствует, если поддержка MPFR не скомпилирована в простофиля.

PROCINFO ["api_major"]
Основная версия API расширения. Эта запись не
присутствует, если загрузка динамических расширений недоступна.

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

PROCINFO ["версия"] версия простофиля.

КРУГЛЫЙ РЕЖИМ Режим округления, используемый для арифметики произвольной точности над числами, на
по умолчанию "N", (Режим RoundTiesToEven IEEE-754). Допустимые значения: "N", or
«П» для roundTiesToEven, "U" or "u" для roundTowardPositive, "D" or "d" для
круглый к отрицательному, "Z" or "z" для roundTowardZero, и если ваша версия
Библиотека GNU MPFR поддерживает его, "А" or «А» для roundTiesToAway.

RS Разделитель входной записи, по умолчанию перевод строки.

RT Ограничитель записи. глазеть Наборы RT к входному тексту, который соответствует
символ или регулярное выражение, указанное RS.

RСТАРТ Индекс первого символа, которому соответствует матч(); 0, если нет совпадения. (Этот
означает, что индексы символов начинаются с единицы.)

ДЛИНА Длина строки соответствует матч(); -1, если совпадений нет.

ПОДПИСЬ Символ, используемый для разделения нескольких нижних индексов в элементах массива с помощью
по умолчанию "\ 034".

СИМТАБ Массив, индексы которого являются именами всех в настоящее время определенных глобальных переменных
и массивы в программе. Массив может использоваться для косвенного доступа для чтения
или напишите значение переменной:

Foo = 5
SYMTAB ["фу"] = 4
Распечатать Foo # печать 4

Ассоциация isarray () функция может использоваться для проверки того, что элемент в СИМТАБ есть
множество. Вы не можете использовать удалять заявление с СИМТАБ массив.

ТЕКСТДОМЕН Текстовый домен программы AWK; используется для поиска локализованных переводов
для строк программы.

Массивы
Массивы подписываются выражением в квадратных скобках ([ и ]). Если
выражение - это список выражений (выраж, выраж ...), то индекс массива представляет собой строку
состоящий из конкатенации (строкового) значения каждого выражения, разделенных
значение ПОДПИСЬ Переменная. Эта возможность используется для моделирования многомерных
массивы. Например:

i = «А»; j = «Б»; k = "C"
х [я, j, k] = "Привет, мир \ n "

присваивает строку "Привет, мир \ n " к элементу массива x который индексируется
string "A \ 034B \ 034C". Все массивы в AWK ассоциативны, т. Е. Индексируются по строковым значениям.

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

if (вал in множество)
Распечатать массив [val]

Если в массиве несколько индексов, используйте (И, j) in массив.

Ассоциация in конструкция может также использоваться в для цикл для перебора всех элементов
множество. Однако (И, j) in массив конструкция работает только в тестах, а не в для петли.

Элемент может быть удален из массива с помощью удалять утверждение. В удалять заявление
также может использоваться для удаления всего содержимого массива, просто указав массив
имя без подстрочного индекса.

простофиля поддерживает настоящие многомерные массивы. Необязательно, чтобы такие массивы были
`` прямоугольный '', как в C или C ++. Например:

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

ЗАМЕТКА: Вам может потребоваться сказать простофиля что элемент массива на самом деле является подмассивом, чтобы использовать
это где простофиля ожидает массив (например, во втором аргументе для расколоть()). Ты можешь сделать
это путем создания элемента в подмассиве и последующего удаления его с помощью удалять
заявление.

Технология Ввод И, Конверсия
Переменные и поля могут быть числами (с плавающей запятой), строками или и тем, и другим. Как ценность
интерпретации переменной зависит от ее контекста. Если используется в числовом выражении,
он будет рассматриваться как число; если он используется как строка, он будет рассматриваться как строка.

Чтобы переменная обрабатывалась как число, добавьте к ней 0; заставить его рассматриваться как
строка, объедините ее с пустой строкой.

Неинициализированные переменные имеют числовое значение 0 и строковое значение "" (ноль или
пустой строки).

Когда строку необходимо преобразовать в число, преобразование выполняется с помощью
стртод(3). Число преобразуется в строку с использованием значения КОНВФМТ как формат
строка для Sprintf(3) с числовым значением переменной в качестве аргумента. Тем не мение,
хотя все числа в AWK являются числами с плавающей запятой, целые значения всегда преобразован как
целые числа. Таким образом, учитывая

КОНВФМТ = "% 2.2f"
a = 12
b = a ""

переменная b имеет строковое значение "12" и не "12.00".

ЗАМЕТКА: При работе в режиме POSIX (например, с --posix вариант), остерегайтесь этого языкового стандарта
настройки могут влиять на способ обработки десятичных чисел: десятичный разделитель
числа, которым вы кормите простофиля должны соответствовать ожиданиям вашего региона, будь то
запятая (,) или точка (.).

глазеть выполняет сравнения следующим образом: если две переменные числовые, они сравниваются
численно. Если одно значение является числовым, а другое имеет строковое значение, которое является «числовым
строка », то сравнения также выполняются в числовом виде. В противном случае числовое значение
преобразуется в строку, и выполняется сравнение строк. Сравниваются две строки из
конечно, как струны.

Обратите внимание, что строковые константы, такие как "57", Являются не числовые строки, они строковые
константы. Идея «числовой строки» применима только к полям, Getline вход, ИМЯ ФАЙЛА,
АРГВ элементы, ОКРУЖАЮЩАЯ СРЕДА элементы и элементы массива, созданные расколоть() 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 все следующие шестнадцатеричные цифры считаются частью escape-последовательности
последовательность. (Эта функция должна рассказать нам кое-что о языковом дизайне
комитет.) Например, "\ x1B" является символом ASCII ESC (escape).

\ддд Символ, представленный последовательностью восьмеричных цифр из 1, 2 или 3 цифр. Например,
"\ 033" является символом ASCII ESC (escape).

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

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

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

СХЕМЫ И Действия


AWK - это строчно-ориентированный язык. Сначала идет узор, а затем действие. Действие
заявления заключены в { и }. Либо шаблон может отсутствовать, либо действие может
будет отсутствовать, но, конечно, не то и другое одновременно. Если шаблон отсутствует, действие выполняется
для каждой отдельной записи ввода. Отсутствующее действие эквивалентно

{ Распечатать }

который печатает всю запись.

Комментарии начинаются с # символ и продолжайте до конца строки. Пустые строки
могут использоваться для разделения заявлений. Обычно оператор заканчивается новой строкой, однако
это не относится к строкам, оканчивающимся запятой, {, ?, :, &&или ||. Строки заканчиваются на do
or еще также их утверждения автоматически продолжаются в следующей строке. В
в других случаях строка может быть продолжена, заканчивая ее знаком «\», и ​​в этом случае перевод строки
игнорируются.

Несколько операторов можно поместить в одну строку, разделив их знаком «;». Это относится к
оба утверждения в части действия пары шаблон-действие (обычный случай) и
к самим операторам шаблон-действие.

Шаблоны
Шаблоны AWK могут быть одним из следующих:

НАЧАТЬ
END
НАЧАТЬ
КОНЕЦФАЙЛ
/регулярный выражение/
реляционный выражение
описания && описания
описания || описания
описания ? описания : описания
(описания)
! описания
pattern1, pattern2

НАЧАТЬ и END - это два особых вида шаблонов, которые не проверяются на входе.
Действие частей всего НАЧАТЬ шаблоны объединяются, как если бы все утверждения были
написано в единственном НАЧАТЬ правило. Они выполняются до того, как будет прочитан какой-либо ввод.
Точно так же все END правила объединяются и выполняются, когда весь ввод исчерпан (или
когда выход оператор выполняется). НАЧАТЬ и END узоры нельзя комбинировать с другими
шаблоны в выражениях шаблонов. НАЧАТЬ и END паттерны не могут иметь недостающих частей действия.

НАЧАТЬ и КОНЕЦФАЙЛ дополнительные специальные паттерны, тела которых выполняются перед
чтение первой записи каждого входного файла командной строки и после чтения последней записи
каждого файла. Внутри НАЧАТЬ Правило, ценность ОШИБКА будет пустой строкой, если
файл был успешно открыт. В противном случае есть проблема с файлом и
код должен использовать следующий файл чтобы пропустить это. Если этого не сделать, простофиля производит свой обычный фатальный
ошибка для файлов, которые не открываются.

Что касается /регулярный выражение/ шаблоны, связанный оператор выполняется для каждого ввода
запись, соответствующая регулярному выражению. Регулярные выражения такие же, как в
задать расширенное(1) и кратко изложены ниже.

A реляционный выражение может использовать любой из операторов, определенных ниже в разделе, посвященном
действия. Обычно они проверяют, соответствуют ли определенные поля определенным регулярным выражениям.

Ассоциация &&, ||качества ! операторы логического И, логического ИЛИ и логического НЕ соответственно,
как в C. Они выполняют оценку короткого замыкания, как и в C, и используются для объединения большего количества
примитивные выражения-шаблоны. Как и в большинстве языков, скобки могут использоваться для изменения
порядок оценки.

Ассоциация ?: оператор похож на тот же оператор в C. Если первый шаблон верен, то
Образец, используемый для тестирования, - это второй образец, в противном случае - третий. Только один из
оценивается второй и третий паттерны.

Ассоциация pattern1, pattern2 форма выражения называется ассортимент описания. Соответствует всем
входные записи, начинающиеся с записи, которая соответствует pattern1, и продолжается до записи
это соответствует pattern2, включительно. Не сочетается ни с каким другим узором.
выражение.

Стандарт Expressions
Регулярные выражения - это расширенный вид, найденный в задать расширенное. Они состоят из персонажей
следующим образом:

c Соответствует неметасимволу c.

\c Соответствует буквальному символу c.

. Соответствует любому персонажу включая новая линия.

^ Соответствует началу строки.

$ Соответствует концу строки.

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

[^abc ...] Список отрицательных символов: соответствует любому символу, кроме abc ....

r1|r2 Чередование: соответствует либо r1 or r2.

r1r2 Конкатенация: совпадения r1, а затем r2.

r+ Соответствует одному или нескольким r"ы.

r* Соответствует нулю или более r"ы.

r? Соответствует нулю или единице r"ы.

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

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

\y Соответствует пустой строке в начале или в конце слова.

\B Соответствует пустой строке в слове.

\< Соответствует пустой строке в начале слова.

\> Соответствует пустой строке в конце слова.

\s Соответствует любому пробельному символу.

\S Соответствует любому непробельному символу.

\w Соответствует любому символу, составляющему слово (буква, цифра или знак подчеркивания).

\W Соответствует любому символу, не входящему в состав слова.

\` Соответствует пустой строке в начале буфера (строки).

\' Соответствует пустой строке в конце буфера.

Управляющие последовательности, допустимые в строковых константах (см. строка Константы) являются также
действителен в регулярных выражениях.

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

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

[: alnum:] Буквенно-цифровые символы.

[:альфа:] Буквенные символы.

[:пустой:] Пробелы или символы табуляции.

[: cntrl:] Управляющие персонажи.

[: цифра:] Числовые символы.

[: график:] Печатные и видимые символы. (Пробел можно распечатать, но не
видимый, в то время как a это оба.)

[:ниже:] Буквенные символы в нижнем регистре.

[:Распечатать:] Печатные символы (символы, не являющиеся управляющими).

[: punct:] Знаки пунктуации (символы, не являющиеся буквой, цифрами, контрольными
символы или пробелы).

[:космос:] Пробелы (например, пробел, табуляция и перевод страницы).

[: верхний:] Буквенные символы в верхнем регистре.

[: xdigit:] Символы, представляющие собой шестнадцатеричные цифры.

Например, до стандарта POSIX для сопоставления буквенно-цифровых символов вам нужно было
пришлось написать / [A-Za-z0-9] /. Если в вашем наборе символов были другие буквенные символы,
это не будет соответствовать им, и если ваш набор символов отличается от ASCII, этот
может даже не соответствовать буквенно-цифровым символам ASCII. С классами символов POSIX,
ты можешь написать / [[: alnum:]] /, и это соответствует буквенным и цифровым символам в
ваш набор символов, какой бы он ни был.

В списках символов могут появиться две дополнительные специальные последовательности. Это относится к не-ASCII
наборы символов, которые могут иметь одиночные символы (называемые сопоставление элементы) которые
представлены более чем одним символом, а также несколькими символами, которые
эквивалент для сопоставление, или сортировка, цели. (Например, во французском простая «е» и
«» с акцентом на могиле эквивалентны.)

Сортировка символов
Символ сортировки - это многосимвольный элемент сортировки, заключенный в [. и .].
Например, если ch является элементом сортировки, тогда [[.ч.]] это регулярное выражение
который соответствует этому элементу сортировки, а [ч] регулярное выражение, которое
соответствует либо c or h.

Классы эквивалентности
Класс эквивалентности - это зависящее от локали имя для списка символов, которые
эквивалент. Имя заключено в [= и =], Например, имя e возможно
используется для обозначения всех букв «e», «´» и «.» В этом случае, [[= e =]] регулярный
выражение, которое соответствует любому из e, е´или e`.

Эти функции очень ценны в регионах, где не говорят по-английски. Функции библиотеки
который простофиля использует для сопоставления регулярных выражений в настоящее время распознает только символ POSIX
классы; они не распознают символы сопоставления или классы эквивалентности.

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

Различные параметры командной строки определяют, как простофиля интерпретирует символы в обычном
выражения.

Нет вариантов
В случае по умолчанию простофиля предоставляет все возможности регулярных выражений POSIX
и описанные выше операторы регулярных выражений GNU.

--posix
Поддерживаются только регулярные выражения POSIX, операторы GNU не являются специальными.
(Например, \w соответствует буквальному w).

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

--re-интервал
Разрешить интервальные выражения в регулярных выражениях, даже если - традиционный было
при условии.

Действия
Операторы действий заключены в фигурные скобки, { и }. Заявления о действиях состоят из обычных
операторы присваивания, условия и циклы, встречающиеся в большинстве языков. Операторы,
операторы управления, а доступные операторы ввода / вывода построены по образцу таковых в C.

Операторы
Операторы в AWK в порядке убывания приоритета:

(...) группирование

$ Ссылка на поле.

++ -- Увеличение и уменьшение, как префиксного, так и постфиксного.

^ Экспонирование (** также может использоваться, и знак равно для оператора присваивания).

+ - ! Унарный плюс, унарный минус и логическое отрицание.

* / % Умножение, деление и модуль.

+ - Сложение и вычитание.

космосе Конкатенация строк.

| |& Трубопроводный ввод / вывод для Getline, Распечататькачества Printf.

< > <= >= != ==
Обычные реляционные операторы.

~ !~ Соответствие регулярному выражению, совпадение с отрицанием. ЗАМЕТКА: Не используйте постоянный регулярный
выражение (/ foo /) в левой части ~ or !~. Используйте только один на
Правая сторона. Выражение / foo / ~ ехр имеет то же значение, что и (($ 0 ~
/ foo /) ~ ехр), Это обычно не что вы хотите.

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

&& Логическое И.

|| Логическое ИЛИ.

?: Условное выражение C. Это имеет вид выражение1 ? выражение2 : выражение3. Если
выражение1 верно, значение выражения равно выражение2в противном случае это выражение3.
Только один из выражение2 и выражение3 оценивается.

= += -= *= /= %= ^=
Назначение. Оба абсолютного присвоения (вар = ценностное ) и оператор-присваивание
(другие формы) поддерживаются.

Control Отчеты
Управляющие инструкции следующие:

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

Ввода / вывода Отчеты
Операторы ввода / вывода следующие:

близко(файл [, КАК]) Закройте файл, трубу или совместную обработку. Необязательный КАК должно быть только
используется при закрытии одного конца двусторонней трубы для совместного процесса. Это
должно быть строковое значение, либо «В» or "от".

Getline Поставьте $0 из следующей входной записи; установленный NF, NR, FNR, RT.

Getline <файл Поставьте $0 из следующей записи файл; набор NF, RT.

Getline вар Поставьте вар из следующей входной записи; установленный NR, FNR, RT.

Getline вар <файл Поставьте вар из следующей записи файл, RT.

команду | Getline [вар]
Run команду вывод вывода либо в $0 or варкак указано выше, и
RT.

команду |& Getline [вар]
Run команду в качестве сопроцессора, подводящего выход либо к $0 or вар,
как указано выше, и RT. Совместные процессы - это простофиля расширение. (команду может
также быть розеткой. См. Подраздел Особый Файл именниже.)

следующий Остановить обработку текущей входной записи. Следующая входная запись
чтение и обработка начинается заново с первого шаблона в AWK
программа. По достижении конца входных данных, простофиля выполняет любые
END правила).

следующий файл Остановить обработку текущего входного файла. Следующая входная запись прочитана
поступает из следующего входного файла. ИМЯ ФАЙЛА и АРГИНД обновлены,
FNR сбрасывается в 1, и обработка начинается заново с первого шаблона
в программе AWK. По достижении конца входных данных, простофиля
выполняет любые END правила).

Распечатать Распечатать текущую запись. Выходная запись завершается
Значение ORS.

Распечатать expr-список Выражения печати. Каждое выражение отделяется значением
ОФС. Выходная запись заканчивается значением ORS.

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

Printf фмт, expr-список Отформатируйте и распечатайте. Видеть Ассоциация Printf заявление, Ниже.

Printf фмт, expr-список >файл
Отформатируйте и распечатайте файл.

система(cmd-строка) Выполнить команду cmd-строка, и вернуть статус выхода. (Это может
недоступен в системах, отличных от POSIX.)

fflush ([файл]) Очистить все буферы, связанные с открытым выходным файлом или конвейером файл.
If файл отсутствует или если это нулевая строка, то очистить все открытые
выходные файлы и каналы.

Дополнительные перенаправления вывода разрешены для Распечатать и Printf.

Распечатать ... >> файл
Добавляет вывод в файл.

Распечатать ... | команду
Пишет по трубе.

Распечатать ... |& команду
Отправляет данные в сопроцессор или сокет. (См. Также подраздел Особый Файл имен,
ниже.)

Ассоциация Getline Команда возвращает 1 в случае успеха, 0 в конце файла и -1 в случае ошибки. На
ошибка, ОШИБКА устанавливается в строку, описывающую проблему.

ЗАМЕТКА: Ошибка при открытии двустороннего сокета приводит к возврату нефатальной ошибки в
вызывающая функция. При использовании трубы, сопроцессора или гнезда для Getline, Или Распечатать or
Printf внутри цикла вы должен использование близко() для создания новых экземпляров команды или
разъем. AWK не закрывает автоматически каналы, сокеты или сопроцессы, когда они возвращаются.
ЭОФ.

Ассоциация Printf заявление
AWK-версии Printf заявление и sprintf () функция (см. ниже) принимает
следующие форматы спецификации преобразования:

%c Одиночный персонаж. Если аргумент, используемый для %c числовой, он рассматривается как
характер и напечатаны. В противном случае предполагается, что аргумент является строкой, а
печатается только первый символ этой строки.

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

%e, %E Число с плавающей запятой в форме [-]d.DDDDDDe[+-]dd, %E формат использует E
вместо e.

%f, %F Число с плавающей запятой в форме [-]ддд.DDDDDD. Если системная библиотека поддерживает
это, %F также доступен. Это похоже на %f, но использует заглавные буквы для специальных
Значения «не число» и «бесконечность». Если %F не доступен, простофиля использования %f.

%g, %G Используйте %e or %f преобразование, в зависимости от того, что короче, с незначащими нулями
подавлен. В %G формат использует %E вместо %e.

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

%u Десятичное число без знака (опять же целое).

%s Строка символов.

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

%% Один % персонаж; аргумент не преобразуется.

Необязательные дополнительные параметры могут находиться между % и контрольное письмо:

считать$ Использовать считатьАргумент на этом этапе форматирования. Это называется
позиционный спецификатор и предназначен в первую очередь для использования в переведенных версиях
строки формата, а не в исходном тексте программы AWK. Это простофиля
расширение.

- Выражение должно быть выровнено по левому краю в пределах своего поля.

космосе Для числовых преобразований добавляйте к положительным значениям пробел, а к отрицательным.
со знаком минус.

+ Знак плюс, используемый перед модификатором ширины (см. Ниже), означает, что всегда нужно указывать
знак для числовых преобразований, даже если форматируемые данные положительны. В +
отменяет модификатор пробела.

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

0 Ведущий 0 (ноль) действует как флаг, который указывает, что вывод должен быть дополнен
нули вместо пробелов. Это относится только к числовым форматам вывода. Этот
flag имеет эффект только тогда, когда ширина поля больше, чем значение, которое нужно напечатать.

' Символ одиночной кавычки указывает простофиля чтобы вставить разделитель тысяч локали
в десятичные числа, а также использовать десятичную точку локали
символ с форматами с плавающей запятой. Для этого требуется правильная поддержка локали в
Библиотека C и определение текущей локали.

ширина Поле должно быть заполнено до этой ширины. Поле обычно дополняется
пробелы. С 0 флаг, он дополняется нулями.

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

Динамический ширина и Prec возможности ISO C printf () поддерживаются подпрограммы. А *
вместо ширина or Prec спецификации приводят к тому, что их значения берутся из
список аргументов для 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 /порт/дух/rport
/ inet4 / tcp /порт/дух/rport
/ inet6 / tcp /порт/дух/rport
Файлы для TCP / IP-соединения на локальном порту порт на удаленный хост дух на удаленном
порт rport. Используйте порт 0 чтобы система выбирала порт. Использовать / inet4 заставить
соединение IPv4 и / inet6 для принудительного подключения IPv6. Простой / inet использует
системное значение по умолчанию (скорее всего, IPv4).

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

Числовой функции
AWK имеет следующие встроенные арифметические функции:

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

соз (выраж) Вернуть косинус выраж, который измеряется в радианах.

ехр (выраж) Показательная функция.

INT (выраж) Усечь до целого числа.

журнал(выраж) Функция натурального логарифма.

Rand () Вернуть случайное число N, между 0 и 1, такие, что 0 ≤ N <1.

грех (выраж) Вернуть синус выраж, который измеряется в радианах.

SQRT (выраж) Вернуть квадратный корень из выраж.

srand ([выраж]) Используйте выраж в качестве нового начального числа для генератора случайных чисел. Если нет выраж is
при условии, используйте время суток. Вернуть предыдущее семя для случайного
генератор чисел.

строка функции
глазеть имеет следующие встроенные строковые функции:

asort (s [, d [, КАК]]) Вернуть количество элементов в исходном массиве s. Сортировать
содержание s через простофиляобычные правила сравнения значений и
заменить индексы отсортированных значений s с последовательным
целые числа, начинающиеся с 1. Если необязательный целевой массив d is
указано, первый дубликат s в d, а затем отсортировать dоставив
индексы исходного массива s без изменений. Необязательная строка КАК
управляет направлением и режимом сравнения. Допустимые значения для
КАК допустимы ли какие-либо строки для PROCINFO ["отсортировано в"], Это
также может быть именем определяемой пользователем функции сравнения как
описанный в PROCINFO ["отсортировано в"].

асорти (s [, d [, КАК]])
Вернуть количество элементов в исходном массиве s. Поведение
такой же, как у asort (), за исключением того, что массив Индексы Он
используется для сортировки, а не значений массива. Когда закончите, массив
численно проиндексированы, а значения соответствуют исходным
индексы. Исходные значения теряются; таким образом предоставьте второй
array, если вы хотите сохранить оригинал. Цель
необязательная строка КАК такое же, как описано в asort () выше.

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. & в
заменяемый текст заменяется текстом, который был на самом деле
совпадает. Использовать \& получить буквальный &. (Это должно быть набрано как
"\\ &"; увидеть ГАВК: Эффективный AWK Программирование для более полного обсуждения
правил для &и обратная косая черта в тексте замены
sub (), gsub ()качества gensub ().)

индекс(s, t) Вернуть индекс строки t в строке s, или 0, если t Не
настоящее время. (Это означает, что индексы символов начинаются с единицы.)
является фатальной ошибкой использования константы регулярного выражения для t.

длина([s]) Вернуть длину строки s, или длина $0 if s Не
поставляется. Как нестандартное расширение с аргументом массива,
длина() возвращает количество элементов в массиве.

соответствие(s, r [, a]) Вернуть позицию в s где регулярное выражение r происходит, или
0, если r отсутствует, и установите значения RСТАРТ и ДЛИНА.
Обратите внимание, что порядок аргументов такой же, как и для ~ оператор:
ул ~ re. Если массив a предоставлен, a очищается, а затем элементы
1 через n заполнены порциями s что соответствует
соответствующее подвыражение в скобках в r. 0-й элемент
of a содержит часть s соответствует всем регулярным
выражение r. Индексы a[n, "Начало"]качества a[n, "длина"]
укажите начальный индекс в строке и длину соответственно,
каждой подходящей подстроки.

пацсплит (s, a [, r [, сепс]])
Разделить строку s в массив a и массив разделителей сепс
по регулярному выражению r, и верните количество полей.
Значения элементов - это части s что соответствует r, Значение
сепс [i] это разделитель, который появился перед a[i+ 1]. Если r
опущен, ФПАТ вместо этого используется. Массивы a и сепс Он
очищается первым. Расщепление ведет себя так же, как и расщепление поля.
ФПАТ, описано выше.

расколоть(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-список) Печать / PDF expr-список по данным FMT, и верните полученную строку.

стртонум (ул) Исследовать ул, и вернуть его числовое значение. Если ул начинается с
ведущий 0, рассматривайте это как восьмеричное число. Если ул начинается с
ведущий 0x or 0X, рассматривайте это как шестнадцатеричное число. В противном случае,
Предположим, это десятичное число.

sub (r, s [, t]) Так же, как gsub (), но заменяет только первую подходящую подстроку.

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

снизить(ул) Вернуть копию строки ул, со всеми заглавными буквами
in ул переведены в соответствующие строчные буквы.
Неалфавитные символы оставлены без изменений.

toupper (ул) Вернуть копию строки ул, со всеми строчными буквами
in ул переведены на их соответствующие аналоги в верхнем регистре.
Неалфавитные символы оставлены без изменений.

глазеть осведомлен о многобайтах. Это означает, что индекс(), длина(), substr () и матч() все работают
с точки зрения символов, а не байтов.

Время функции
Поскольку одно из основных применений программ AWK - обработка файлов журнала, содержащих время
информация штампа, простофиля предоставляет следующие функции для получения отметок времени и
форматирование их.

mktime (datepec)
Тёрн datepec в метку времени той же формы, что и возвращенная systime ()качества
вернуть результат. В datepec строка вида YYYY MM DD HH MM SS[
Летнее время]. Содержимое строки состоит из шести или семи чисел, представляющих
соответственно полный год, включая век, месяц с 1 по 12, день
месяц от 1 до 31, час дня от 0 до 23, минуты от 0 до
59, второй от 0 до 60 и необязательный флаг перехода на летнее время. Ценности
из этих чисел не обязательно находиться в указанных диапазонах; например час
-1 означает 1 час до полуночи. Григорианский календарь с нулевым происхождением
Предполагается, что год 0 предшествует году 1, а год -1 предшествует году 0. Время
предполагается, что он находится в местном часовом поясе. Если флаг перехода на летнее время положительный,
предполагается, что время летнее; если ноль, предполагается, что время
быть стандартным временем; и если отрицательный (по умолчанию), mktime () попытки определить
действует ли летнее время в указанное время. Если datepec
не содержит достаточного количества элементов или если результирующее время выходит за пределы допустимого диапазона,
mktime () возвращает -1.

strftime ([формат [, отметка времени[, UTC-флаг]]])
Формат отметка времени согласно спецификации в формат. Если UTC-флаг is
присутствует и отличен от нуля или не равен нулю, результат находится в формате UTC, в противном случае результат
по местному времени. В отметка времени должен иметь ту же форму, что и возвращенный
systime (). Если отметка времени отсутствует, используется текущее время суток. Если формат
отсутствует формат по умолчанию, эквивалентный выходным данным даты(1) используется. В
формат по умолчанию доступен в PROCINFO ["strftime"]. См. Спецификацию для
домен strftime () функция в ISO C для гарантированного преобразования формата
быть доступным.

systime () Возвращает текущее время дня как количество секунд с начала эпохи.
(1970-01-01 00:00:00 UTC в системах POSIX).

Немного Манипуляции функции
глазеть предоставляет следующие функции обработки битов. Они работают за счет преобразования двойных-
точность значений с плавающей запятой до uintmax_t целые числа, выполняя операцию, а затем
преобразование результата обратно в число с плавающей запятой. Функции:

и(v1, v2 [, ...]) Вернуть побитовое И значений, указанных в списке аргументов.
Их должно быть как минимум двое.

компл (волна) Вернуть побитовое дополнение волна.

lshift (волна, считать) Вернуть значение волна, сдвинут влево на считать биты.

или(v1, v2 [, ...]) Вернуть побитовое ИЛИ значений, указанных в списке аргументов.
Их должно быть как минимум двое.

rshift (волна, считать) Вернуть значение волна, сдвинут вправо на считать биты.

xor (v1, v2 [, ...]) Вернуть побитовое исключающее ИЛИ значений, указанных в списке аргументов.
Их должно быть как минимум двое.

Тип Функция
Следующая функция предназначена для использования с многомерными массивами.

isarray (x)
Вернуть истину, если x является массивом, в противном случае - false.

Интернационализация функции
Следующие функции могут использоваться в вашей программе AWK для перевода строк.
во время выполнения. Для получения полной информации см. ГАВК: Эффективный AWK Программирование.

bindtextdomain (каталог [, домен])
Укажите каталог, в котором простофиля ищет .гмо файлы, если они не будут или
нельзя размещать в `` стандартных '' местах (например, во время тестирования). Он возвращается
каталог, в котором домен `` связано ''.
По умолчанию домен это значение ТЕКСТДОМЕН. Если каталог это нулевая строка
(""), тогда bindtextdomain () возвращает текущую привязку для данного домен.

dcgettext (string [, домен [, Каталог]])
Вернуть перевод string в текстовом домене домен для категории локали
Каталог. Значение по умолчанию для домен текущее значение ТЕКСТДОМЕН,
значение по умолчанию для Каталог is "LC_MESSAGES".
Если вы укажете значение для Каталог, это должна быть строка, равная одному из известных
категории локали, описанные в ГАВК: Эффективный AWK Программирование. Вы также должны
предоставить текстовый домен. Использовать ТЕКСТДОМЕН если вы хотите использовать текущий домен.

dcngettext (string1, string2, номер [, домен [, Каталог]])
Вернуть форму множественного числа, используемую для номер перевода string1 и string2 in
текстовый домен домен для категории локали Каталог. Значение по умолчанию для домен is
текущая стоимость ТЕКСТДОМЕН. Значение по умолчанию для Каталог is "LC_MESSAGES".
Если вы укажете значение для Каталог, это должна быть строка, равная одному из известных
категории локали, описанные в ГАВК: Эффективный AWK Программирование. Вы также должны
предоставить текстовый домен. Использовать ТЕКСТДОМЕН если вы хотите использовать текущий домен.

ОПРЕДЕЛЯЕМЫЕ ПОЛЬЗОВАТЕЛЕМ ФУНКЦИИ


Функции в AWK определены следующим образом:

функция имя(параметр список) { отчетность }

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

Поскольку функции изначально не были частью языка AWK, положение о локальных
переменные довольно корявые: они объявлены как дополнительные параметры в списке параметров.
По соглашению локальные переменные отделяются от реальных параметров дополнительными пробелами в
список параметров. Например:

функция f (p, q, a, b) # a и b Он локальным
{
...
}

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

Левая скобка в вызове функции требуется сразу после функции.
имя, без пробелов. Это позволяет избежать синтаксической двусмысленности с
оператор конкатенации. Это ограничение не распространяется на перечисленные встроенные функции.
выше.

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

Используйте возвращают выраж чтобы вернуть значение из функции. Возвращаемое значение не определено, если нет
предоставляется значение, или если функция возвращается, «отвалившись» от конца.

простофиля расширение, функции могут вызываться косвенно. Для этого присвойте имя
вызываемая функция в виде строки для переменной. Затем используйте переменную, как если бы она
были именем функции с префиксом @ знак, вот так:
функция myfunc ()
{
Распечатать "myfunc называется"
...
}

{ ...
the_func = "myfunc"
@the_func () # призывают через the_func в моя функция
...
}
Начиная с версии 4.1.2, это работает с пользовательскими функциями, встроенными функциями и
функции расширения.

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

Слово FUNC может быть использован вместо функция, хотя это устарело.

ДИНАМИЧЕСКИ ЗАГРУЗКА НОВАЯ ФУНКЦИИ


Вы можете динамически добавлять новые встроенные функции в запущенный простофиля переводчик с
@нагрузка утверждение. Полная информация выходит за рамки этой страницы руководства; видеть ГАВК:
Эффективный AWK Программирование.

СИГНАЛЫ


Ассоциация простофиля профилировщик принимает два сигнала. СИГУСР1 заставляет его сбрасывать профиль и функционировать
стек вызовов в файл профиля, который либо awkprof.out, или какому-либо файлу было присвоено имя
с --профиль вариант. Затем он продолжает работать. ПОДПИСАТЬСЯ Причины простофиля сбросить
профиль и стек вызовов функций, а затем выйти.

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


Строковые константы - это последовательности символов, заключенные в двойные кавычки. На неанглийском
говорящих средах, можно пометить строки в программе AWK как требующие
перевод на местный естественный язык. Такие строки помечаются в программе AWK знаком
ведущий знак подчеркивания («_»). Например,

простофиля 'НАЧИНАТЬ { Распечатать "Привет, Мир" }'

всегда печатает Здравствуйте, Мир, Но,

простофиля 'НАЧИНАТЬ { Распечатать _"Привет, Мир" }'

может распечатать привет, Monde во Франции.

Создание и запуск локализуемой программы AWK состоит из нескольких этапов.

1. Добавить НАЧАТЬ действие для присвоения значения ТЕКСТДОМЕН переменная для установки текстового домена
к имени, связанному с вашей программой:

НАЧАТЬ { ТЕКСТДОМЕН = "myprog" }

Это позволяет простофиля найти .гмо файл, связанный с вашей программой. Без этого
шаг, простофиля использует Сообщения текстовый домен, который, скорее всего, не содержит переводов
для вашей программы.

2. Отметьте все строки, которые необходимо перевести, нижним подчеркиванием.

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

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

5. Сделайте соответствующие переводы, а также создайте и установите соответствующие .гмо файлы.

Особенности интернационализации подробно описаны в ГАВК: Эффективный AWK
Программирование.

POSIX СОВМЕСТИМОСТЬ


Основная цель для простофиля совместимость со стандартом POSIX, а также с
последняя версия Брайана Кернигана AWK, С этой целью, простофиля включает следующие
видимые пользователем функции, которые не описаны в книге AWK, но являются частью Brian
Версия Кернигана AWK, и находятся в стандарте POSIX.

В книге указано, что присвоение переменных командной строки происходит, когда AWK иначе бы
открыть аргумент как файл, который находится после НАЧАТЬ правило выполняется. Однако в
в более ранних реализациях, когда такое присвоение появлялось перед любым именем файла,
назначение произойдет до домен НАЧАТЬ правило было выполнено. Приложения стали зависеть от
эта особенность." Когда AWK был изменен в соответствии с его документацией, -v вариант для
присвоение переменных перед выполнением программы было добавлено для работы с приложениями, которые
зависел от старого поведения. (Эта особенность была согласована как Bell
Лаборатории и разработчики GNU.)

При обработке аргументов простофиля использует специальную опцию «-», чтобы сигнализировать об окончании
аргументы. В режиме совместимости он предупреждает о неопределенных параметрах, но игнорирует их.
При нормальной работе такие аргументы передаются программе AWK для обработки.

Книга AWK не определяет возвращаемое значение srand (). В стандарте POSIX это
вернуть использованное начальное число, чтобы можно было отслеживать последовательности случайных чисел.
Поэтому srand () in простофиля также возвращает текущее начальное число.

Другие новые функции: Использование нескольких -f варианты (от МКС AWK); ОКРУЖАЮЩАЯ СРЕДА множество;
домен \aкачества \v escape-последовательности (изначально реализованные в простофиля и вернулся в колокол
Версия лаборатории); в снизить() и toupper () встроенные функции (от Bell
Версия лаборатории); и спецификации преобразования ISO C в Printf (сделано сначала в
версия Bell Laboratories).

ИСТОРИЧЕСКИЙ ФУНКЦИИ И ОСОБЕННОСТИ


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

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

то же самое, что и любой из

a = длина()
a = длина ($ 0)

Использование этой функции - плохая практика, и простофиля выдает предупреждение о его использовании, если --линт is
указан в командной строке.

GNU РАСШИРЕНИЯ


глазеть имеет слишком большое количество расширений POSIX AWK. Они описаны в этом
раздел. Все описанные здесь расширения можно отключить, вызвав простофиля с
- традиционный or --posix настройки.

Следующие особенности простофиля недоступны в POSIX AWK.

· Для файлов, названных через -f вариант. Следовательно ПУТЬ AWKPATH
переменная окружения не особенная.

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

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

· The \x escape-последовательность. (Отключено с помощью --posix.)

· Возможность продолжить строки после ? и :. (Отключено с помощью --posix.)

· Восьмеричные и шестнадцатеричные константы в программах AWK.

· The АРГИНД, РЕЖИМ БИН, ОШИБКА, ЛИНТ, RT и ТЕКСТДОМЕН переменные не особенные.

· The ИГНОРИРОВАТЬ переменная и ее побочные эффекты недоступны.

· The ПОЛЯ разделение полей переменной и фиксированной ширины.

· The ФПАТ разделение переменных и полей на основе значений полей.

· The ПРОЦИНФО массив недоступен.

· Использование RS как регулярное выражение.

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

· The |& оператор для создания сопроцессов.

· The НАЧАТЬ и КОНЕЦФАЙЛ специальные выкройки недоступны.

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

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

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

· Необязательный третий аргумент матч() функции.

· Возможность использовать позиционные спецификаторы с Printf и sprintf ().

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

· The и(), asort (), asorti (), bindtextdomain (), Compl (), dcgettext (), dcngettext (),
gensub (), lshift (), mktime (), или(), patsplit (), rshift (), strftime (), strtonum (),
systime () и xor () функции.

· Локализуемые строки.

Книга AWK не определяет возвращаемое значение близко() функции. глазеть's близко()
возвращает значение из fclose(3) или закрыть(3), при закрытии выходного файла или канала,
соответственно. Он возвращает статус выхода процесса при закрытии входного канала. В
возвращаемое значение - -1, если названный файл, канал или сопроцесс не был открыт с
перенаправление.

После появления простофиля вызывается с - традиционный вариант, если fs аргумент к -F опция
«Т», тогда FS установлен на символ табуляции. Обратите внимание, что ввод простофиля -F \ t ... просто вызывает
оболочка цитирует «t» и не передает «\ t» в -F вариант. Поскольку это
довольно уродливый частный случай, это не поведение по умолчанию. Это поведение также не
произойдет, если --posix был указан. Чтобы действительно получить символ табуляции в качестве поля
разделитель, лучше использовать одинарные кавычки: простофиля -F '\ t' ....

ОКРУЖАЮЩАЯ СРЕДА ПЕРЕМЕННЫЕ


Ассоциация ПУТЬ AWKPATH переменная окружения может использоваться для предоставления списка каталогов, которые простофиля
ищет при поиске файлов, названных через -f, --файл, -i и --включают параметры. Если
первоначальный поиск завершается неудачно, путь ищется снова после добавления .awk к имени файла.

Ассоциация АВКЛИБПУТЬ переменная окружения может использоваться для предоставления списка каталогов, которые простофиля
ищет при поиске файлов, названных через -l и --нагрузка настройки.

Ассоциация GAWK_READ_TIMEOUT переменная окружения может использоваться для указания тайм-аута в
миллисекунды для чтения ввода с терминала, канала или двусторонней связи, включая
розетки.

Для подключения к удаленному хосту через сокет, GAWK_SOCK_RETRIES контролирует количество
повторные попытки и GAWK_MSEC_SLEEP и интервал между повторными попытками. Интервал в
миллисекунды. В системах, которые не поддерживают ты спишь(3) значение округляется до
целое число секунд.

If POSIXLY_CORRECT существует в окружающей среде, то простофиля ведет себя так же, как если бы --posix было
было указано в командной строке. Если --линт было указано, простофиля выдает предупреждение
сообщение об этом.

ВЫХОД статус


Если же линия индикатора выход оператор используется со значением, тогда простофиля завершается с заданным числовым значением
к нему.

В противном случае, если при выполнении не было проблем, простофиля выходит со значением C
постоянная EXIT_SUCCESS. Обычно это ноль.

Если произошла ошибка, простофиля выходит со значением константы C EXIT_FAILURE. Это
обычно один.

If простофиля завершается из-за фатальной ошибки, статус выхода равен 2. В системах, отличных от POSIX, это
значение может быть сопоставлено с EXIT_FAILURE.

Версия ИНФОРМАЦИЯ


Документы этой страницы руководства простофиля, Версия 4.1.

АВТОРЫ


Исходная версия UNIX AWK был разработан и реализован Альфредом Ахо, Питером
Вайнбергер и Брайан Керниган из Bell Laboratories. Брайан Керниган продолжает
поддерживать и улучшать его.

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

Читать ГАВК: Эффективный AWK Программирование для получения полного списка участников простофиля и ее
документация.

Смотрите пост в README подать в простофиля распространение актуальной информации о сопровождающих
и какие порты в настоящее время поддерживаются.

BUG ДОКЛАДЫ


Если вы обнаружите ошибку в простофиля, пожалуйста, отправьте электронное письмо на [электронная почта защищена]. Пожалуйста
укажите вашу операционную систему и ее версию, версию простофиля (От простофиля --версия),
какой компилятор C вы использовали для его компиляции, а также тестовую программу и данные размером с
возможно для воспроизведения проблемы.

Перед отправкой отчета об ошибке выполните следующие действия. Сначала убедитесь, что у вас есть
последняя версия простофиля. Многие ошибки (обычно незначительные) исправляются в каждом выпуске,
и если ваш устарел, проблема, возможно, уже решена. Во-вторых, пожалуйста, посмотрите
при установке переменной окружения LC_ALL в LC_ALL = C заставляет вещи вести себя как ты
ожидать. Если да, то это проблема локали и может быть, а может и не быть ошибкой. Наконец, пожалуйста
внимательно прочтите эту справочную страницу и справочное руководство, чтобы убедиться, что то, что вы считаете
ошибка действительно есть, а не просто причуда в языке.

Что бы ты ни делал, делай НЕ опубликовать отчет об ошибке в comp.lang.awk. В то время как простофиля застройщиков
время от времени читайте эту группу новостей, отправляя сообщения об ошибках, это ненадежный способ сообщить
ошибки. Вместо этого используйте адреса электронной почты, указанные выше. Действительно.

Если вы используете систему на основе GNU / Linux или BSD, вы можете отправить отчет об ошибке на
производитель вашего дистрибутива. Это нормально, но отправьте копию официальному
адрес электронной почты, так как нет гарантии, что отчет об ошибке будет отправлен на
домен простофиля сопровождающий.

Используйте gawk в Интернете с помощью сервисов onworks.net


Бесплатные серверы и рабочие станции

Скачать приложения для Windows и Linux

Команды Linux

Ad