Язык обработки данных AWK2. Образцы /patterns/2.1 Регулярное выражениеДля осуществление поиска в AWK языке допускается использование регулярных выражений, определенных в описании SED, (см. ``Неинтерактивный текстовый редактор SED'' 2.1), заключенных в``/ /''. Дополнения к использованию регулярных выражений, допускаемые в AWK-языке:
Например: /Olga/ - Указывает на строки, содержащие Olga. /[Oo]lga|[Mm]ike|[Mm]al/ - Указывает на строки, содержащие Olga или olga или Mike или mike или Mal или mal. /number[0-9]/ - Указывает на строки, содержащие number0 или number1 или ... number9. /\/.+\// - Указывает на строки, содержащие любое количество символов, больше или равное 1, заключенных в / /.
2.2 Выражение отношенияВыражение отношение может быть двух типов:
Принадлежность: ~ - Содержится; !~ - Не содержится. Лог. Операция: < , < =, ==, !=, > =, > . Например: $1 ~ /[Oo]lga/ - Указывает на строки, первое поле которых содержит Olga или olga. $1 > = "s" - Указывает на строки, начинающиеся с символа s или следующих за ним по порядку: t, u, v...
2.3 Комбинация образцовДопускается логическая комбинация образцов с использованием следующих знаков: || - ``или'', & & - ``и'', ! - ``не''.Последовательности образцов, соединенных одним из знаков читаются слева направо. Комбинация: ``образец1, образец2'' указывает, что действие выполняется над строками, попадающими в указанный ранг: то есть, начиная от строки, удовлетворяющей ``образец1" и вплоть до строки, удовлетворяющей ``образец2", включая ее саму. Например: /02\.95/ & & ($1 !~ /\.su/ $2 !~ /\.su/) - Указывает на строки, содержащие 02.95 и не имеющие .su одновременно в первом и во втором поле. NR == 100, NR == 200 - Указывает строки с номерами от 100 до 200.
2.4 BEGIN и ENDОбразец BEGIN указывает на начало input или на те действия, которые должны быть выполнены до какого бы то ни было анализа строк. Образец END указывает на конец input или на те действия, которые должны быть выполнены после обработки всех строк. Например: BEGIN {FS = ":"} - Устанавливает разделитель полей в ":" до начала обработки строк. Эквивалентно опции "-F:" при AWK вызове. END { print NR } - Печатает номер последней строки input, т.е. количество обработанных входных строк.
|
<<< | Оглавление | Страница: 2 3 | >>> |