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

О проекте

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

MySQL

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

Хостинг

Другое








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

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

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

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

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

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

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

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

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

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

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

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



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





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

13. Функции, определенные пользователем

13.2 Примеры определения функций

Вот определение пользовательской функции с именем myprint, которая берет число и печатает его в указанном формате.

function myprint(num) -
printf "%6.3g"n", num ""

Приведем для иллюстрации  awk-правило, которое использует эту функцию:

$3 ? 0 - myprint($3) ""

Эта программа печатает в специальном формате все третьи поля, которые содержат положительное число. Поэтому, если дано:

1.2 3.4 5.6 7.8 9.10 11.12 -13.14 15.16 17.18 19.20 21.22 23.24

то эта программа, используя нашу функцию для форматирования результата, напечатает:

5.6 21.2
Следующая функция вычеркивает все элементы массива.

function delarray(a, i) -
for (i in a)
delete a[i] ""

При работе с массивами часто нужно вычеркивать все элементы некоторого массива и начинать с начала с новым списком элементов (см. раздел 11.6 [Оператор delete], стр. 128). Вместо повторения такого цикла всюду в программе, everywhere где вы хотите очистить массив, можно просто вызывать delarray.

Приведем пример рекурсивной функции. Она берет цепочку в качестве входного параметра и возвращает цепочку в обратном порядке.

function rev(str, start) -
if (start == 0)
return ""
return (substr(str, start, 1) rev(str, start - 1)) ""

Если эта функция находится в файле с именем `rev.awk', мы можем проверить ее следующим образом:

$ echo "Don't Panic!"
-- ? gawk --source '- print rev($0, length($0)) ""' -f rev.awk
a !cinaP t'noD

Вот пример, где используется встроенная функция strftime. (См. раздел 12.5 [Функции для действий с отметками времени], стр. 148, для подробной информации о strftime.) Функция ctime в Си получает timestamp и возвращает ее в хорошо известной форме. Здесь приведена ее awk-версия:

# ctime.awk # # awk-версия функции  ctime(3) в Си
function ctime(ts, format) -
format = "%a %b %d %H:%M:%S %Z %Y" if (ts == 0)
ts = systime() # по умолчанию используется текущее время
return strftime(format, ts) ""

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



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





Copyright © 2005-2016 Project.Net.Ru