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

О проекте

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

MySQL

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

Хостинг

Другое








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

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

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

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

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

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

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

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

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

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

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

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



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





Руководство пользователя для 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