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

О проекте

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

MySQL

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

Хостинг

Другое








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

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

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

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

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

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

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

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

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

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

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

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



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




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

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

5.8 Явный ввод по команде getline

5.8.6 Использование getline из конвейера

Можно передавать конвейером (pipe) выход от command к getline, используя `command -- getline'. В таком случае слово command исполняется как команда оболочки и ее выход передается в awk для использования в качестве ввода. Эта форма getline читает за раз одну запись из конвейера.

Например, следующая программа копирует ее ввод на вывод, за исключением строк, которые начинаются с `@execute'; такие строки заменяются выходом, полученным при выполнении остатка строки в качестве команды оболочки.

awk '-
if ($1 == "@execute") -
tmp = substr($0, 10) while ((tmp -- getline) ? 0)
print close(tmp) "" else
print ""'

Функция close вызывается для того, чтобы в случае двух идентичных строк `@execute' во входе команда command выполнялась для каждой из них. См. раздел 6.8 [Закрытие входных и выходных файлов и конвейеры], стр. 74.

Пусть задан ввод:

foo bar baz @execute who bletch

программа может выдать:

foo bar baz arnold ttyv0 
Jul 13 14:22 miriam ttyp0 
Jul 13 14:23 (murphy:0)
bill ttyp1 
Jul 13 14:23 (murphy:0) bletch

Заметим, что эта программа выполняет команду who и печатает результат. (Если вы сами запустите эту программу, вы получите, конечно, другой результат, показывающий вам, кто сейчас работает на вашей системе.)

Этот вариант getline разделяет записи на поля, устанавливает значение NF и пере вычисляет значение $0. Значения NR и FNR не меняются. В соответствии с POSIX, `expression -- getline' не определена, если expression содержит не заключенные в скобки операторы, отличные от `$'; например, `"echo " "date" -- getline' не определена, так как конкатенация не заключена в скобки, нужно писать `("echo " "date") -- getline', чтобы программа была переносимой на другие реализации awks. (Бывает, что gawk ее выполнит правильно, но на это не надо полагаться. Во всяком случае, скобки делают программу легче читаемой.)

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



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





Copyright © 2005-2016 Project.Net.Ru

Чехлы skoda чехлы сиденья киа серато 3 от 2800 рублей, быстро и онлайн.