автоэвакуация дешево
Руководство пользователя для GNU Awk
10.1 Встроенные переменные, которые управляют действиями awk
Приведем алфавитный список переменных, которые вы можете изменять для контроля за некоторыми действиями awk. Переменные, специфичные для gawk, помечены звездочками `*'.
CONVFMT
Эта цепочка управляет превращениями чисел в цепочки (см. раздел 7.4 [Конверсии цепочек и чисел], стр. 81). Она работает в качестве первого аргумента функции sprintf (см. раздел 12.3 [Встроенные функции для манипуляций с цепочками], стр. 137). Ее значение по умолчанию есть "%.6g". CONVFMT была введена в стандарте POSIX.
FIELDWIDTHS *
Это разделенный пробелами список столбцов, который сообщает gawk, как расщеплять ввод с фиксированными границами для колонок. Это экспериментальная возможность. Присваивание в FIELDWIDTHS отменяет использование FS для разделения полей. См. раздел 5.6 [Чтение данных фиксированной ширины], стр. 49, содержащий детали.
Если gawk работает в режиме совместимости (см. раздел 14.1 [Параметры командной строки], стр.161), то FIELDWIDTHS не оказывает специального влияния и операции по выделению полей производятся только на основе значения FS.
FS
FS представляет входной разделитель полей (см. раздел 5.5 [Указания того, как разделяются поля], стр. 44). Ее значение есть одно-символьная цепочка или много символьное регулярное выражение, которое соответствует разделителям между полями в входной записи. Если значение есть пустая строка (""), то каждый символ в записи рассматривается как отдельное поле. Значение ее по умолчанию есть " ", цепочка из одного пробела. Как специальное исключение, это значение подразумевает, что всякая последовательность пробелов, символов табуляции и/или newlines есть отдельный разделитель.
Оно также побуждает игнорировать пробелы, знаки табуляции и newlines в начале и конце записи. Значение FS можно устанавливать из командной строки с помощью параметра `-F':
awk -F, 'program' input-files
Если gawk использует FIELDWIDTHS для разделения полей, то присваивание значения переменной FS заставит gawk возвратиться к нормальному, на основе FS, разделению полей. Простой путь для этого просто написать `FS = FS', возможно, с пояснительным комментарием.
IGNORECASE *
Если значение IGNORECASE не ноль и не пусто, то все сравнения цепочек и определения соответствий регулярным выражениям будут независимы от регистра. Так, в соответствие regexp по `~' и `!~', функция gensub, gsub, index, match, split и sub, в окончаниях записей по RS и разделению полей по FS --- всюду будет игнорироваться регистр во всех операциях. Значение IGNORECASE не влияет на индексацию в массивах. См. раздел 4.5 [Чувствительность к регистру в соответствиях], стр. 33. Если gawk работает в режиме совместимости, (см. раздел 14.1 [Параметры командной строки], стр.161), то IGNORECASE не имеет специального значения и цепочки и операции с regexp чувствительны к регистру.
OFMT
Эта цепочка управляет превращениями чисел в цепочки (см. раздел 7.4 [конверсии цепочек и чисел], стр. 81) при печати по оператору print. Фактически она работает как первый аргумент функции sprintf (см. раздел 12.3 [Встроенные функции для манипуляций с цепочками], стр. 137). Ее значение по умолчанию есть "%.6g". Ранние версии awk также использовали OFMT для спецификации формата при превращении чисел в цепочки в общих выражениях; теперь это делается согласно переменной CONVFMT.
OFS
Это выходной разделитель полей (см. раздел 6.3 [Выходные разделители], стр. 63). Он разделяет поля на выходе в операторе печати. По умолчанию имеет значение " ", цепочка из одного пробела.
ORS
Это выходной разделитель записей. Он выдается в конце результата оператора печати. По умолчанию его значение есть ""n". (См. раздел 6.3 [Выходной разделитель, стр. 63.)
RS
Это входной разделитель записей в awk. По умолчанию его значение есть цепочка из одного символа newline. Это означает, что входная строка состоит из одной строки текста. Это может быть и пустая цепочка, и в этом случае записи разделены полосой строк из пробелов или regexp, в котором записи разделяются соответствиями этому regexp во входном тексте. (См. раздел 5.1 [Как ввод делится на записи], стр. 37.)
SUBSEP
SUBSEP есть разделитель индексов. По умолчанию он равен ""034" и используется для разделения индексов в элементах многомерного массива. Так, выражение foo["A", "B"] фактически есть foo["A"034B"] (см. раздел 11.9 [Многомерные массивы], стр. 130).
Назад | Вперед
Содержание (общее) | Содержание раздела
Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
|