П О Р Т А Л                            
С Е Т Е В Ы Х                          
П Р О Е К Т О В                        
  
Поиск по сайту:
                                                 
Главная

О проекте

Web-мастеру
     HTML & JavaScript
     SSI
     Perl
     PHP
     XML & XSLT
     Unix Shell

MySQL

Безопасность

Хостинг

Другое








Самое читаемое:

Учебник PHP - "Для Чайника".
Просмотров 4096 раз(а).

Иллюстрированный самоучитель по созданию сайтов.
Просмотров 6756 раз(а).

Учебник HTML.
Просмотров 3717 раз(а).

Руководство по PHP5.
Просмотров 5991 раз(а).

Хостинг через призму DNS.
Просмотров 4809 раз(а).

Подборка текстов стандартных документов.
Просмотров 56244 раз(а).

Учебник PHP - Самоучитель
Просмотров 3702 раз(а).

Документация на MySQL (учебник & справочное руководство)
Просмотров 8335 раз(а).

Внешние атаки...
Просмотров 4563 раз(а).

Учебник PHP.
Просмотров 3172 раз(а).

SSI в примерах.
Просмотров 175 раз(а).



 
 
| Добавить в избранное | Сделать стартовой | Помощь





Руководство пользователя для GNU Awk

5. Чтение входных файлов

5.3 Непостоянные номера полей

Номер поля не обязан быть константой. Любое выражение языка awk может быть использовано после `$' для ссылки на поле. Значение выражения указывает номер поля. Если значение есть не число, а цепочка, она конвертируется в номер.

Рассмотрим такой пример:

awk '- print $NR ""'

Напомним, что NR есть количество прочитанных до настоящего момента записей: один для первой записи, два во второй, и т.д. Так что этот пример печатает первое поле первой записи, второе поле второй записи, и т.д. Для двадцатой записи печатается поле номер 20; обычно запись имеет меньше 20 полей, так что это будет пустая строка.

Вот другой пример использования выражения 
в качестве номера поля:

awk '- print $(2*2) ""' BBS-list

awk должен вычислить выражение `(2*2)' и использовать его значение как номер поля для печати. Знак `*' означает умножение, так что выражение `2*2' вычисляется как четыре. Скобки употреблены для того, чтобы умножение было произведено до операции `$'; они необходимы всегда, когда в выражении для номера поля встречается бинарная операция. Наш пример поэтому печатает операционные часы (четвертое поле) каждой строки файла `BBS-list'.

(Все операторы awk перечислены в порядке убывания приоритета в разделе 7.14 [Приоритет операторов (Как операторы гнездятся)], стр. 94.) Если вычисленный номер поля есть 0, вы получаете всю запись. Так, $(2-2) имеет тот же смысл, что и $0. Отрицательные номера полей недопустимы; такая ссылка обычно приводит к прекращению исполнения программы. (Стандарт POSIX не предусматривает отрицательной ссылки на номер записи. gawk замечает это и прекращает выполнение программы. Другие реализации awk могут вести себя по-другому.)

Как упоминалось в разделе 5.2 [Обследование полей], стр. 40, количество полей текущей записи содержится в встроенной переменной NF (см. также Гл. 10 [Встроенные переменны, стр. 115). Выражение $NF не имеет специального смысла и использует значение NF как номер поля.

Назад | Вперед
Содержание (общее) | Содержание раздела



Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
 





Copyright © 2005-2016 Project.Net.Ru