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

О проекте

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

MySQL

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

Хостинг

Другое








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

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

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

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

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

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

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

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

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

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

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

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



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





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

14. Запуск awk

14.2 Другие аргументы командной строки

Всякие дополнительные аргументы командной строки нормально рассматриваются как входные файлы для обработки в указанном порядке. Однако, аргумент, который имеет вид var=value, присваивает значение value переменной var и вовсе не означает никакой файл. Все такие аргументы доступны вашей awk-программе в массиве ARGV (см. главу 10 [Встроенные переменные], стр. 115). Параметры командной строки и текст программы ( если он присутствовал) не попадают в ARGV. Все другие аргументы, включая присваивания переменным, попадают в него. При обработке любого элемента ARGV gawk устанавливает переменную ARGIND на индекс текущего элемента ARGV. Различие между аргументами имен файлов и присваиваний переменным определяется, когда awk собирается открыть следующий входной файл. В этой точке выполнения программы он проверяет "file name" чтобы проверить, не есть ли это присваивание переменной; если так, то awk вместо чтения файла присваивает значение переменной. Поэтому переменные получают значения фактически после прочтения всех файлов, указанных ранее этого присваивания. В частности, значения таких переменных недоступны внутри правила BEGIN (см. раздел 8.1.5 [Специальные образцы BEGIN и END, стр. 100), потому что такие правила выполняются до начала сканирования списка аргументов.

В значениях переменных, заданных в командной строке, обрабатываются управляющие последовательности (d.c.) (см. раздел 4.2 [Управляющие последовательности], стр. 24). В некоторых ранних реализациях, когда присваивания переменным встречались до имен файлов, они выполнялись до выполнения правил BEGIN. Тем самым поведение awk было непоследовательным.


1 Не рекомендуется.

Некоторые присваивания из командной строки оказывались доступными внутри правил BEGIN, а другие нет. Некоторые приложения зависели от этого "свойства". Когда awk была изменена для устранения противоречий, параметр `-v' был добавлен для обеспечения приложений, которые зависели от прежнего поведения.

Возможность присваивания из командной строки наиболее удобна для присваивания таким переменным как RS, OFS и ORS, которые управляют форматом ввода и вывода, перед просмотром файлов с данными. Это также полезно для проверки состояния, если необходимы повторные просмотры файлов с данными.

Например:

awk 'pass == 1 - pass 1 stuff ""
pass == 2 - pass 2 stuff ""' pass=1 mydata pass=2 mydata

Имея возможность присваивания переменным, не обязательно пользоваться параметром `-F' для установки значения FS. Он остается для исторической совместимости.

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



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





Copyright © 2005-2016 Project.Net.Ru