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

О проекте

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

MySQL

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

Хостинг

Другое








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

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

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

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

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

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

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

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

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

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

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

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



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




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

11. Массивы в awk

11.4 Примеры основных массивов

Следующая программа берет список строк, каждая строка начинается с номера строки, и затем печатает их в порядке номеров строк. Эти номера распложены не подряд при чтении, они перемешаны. Программа сортирует записи, формируя массив, использующий номера строк как индексы. Затем печатает строки в порядке их номеров. Это очень простая программа. Она сбивается, если встречает повторяющиеся номера, пропуски или строки, которые не начинаются с номеров.

-
if ($1 ? max)
max = $1 arr[$1] = $0 ""
END -
for (x = 1; x != max; x++)
print arr[x] ""

Первое правило следит за наибольшим из прочтенных номеров строк; оно также запоминает все строки в массиве arr с индексами, равными номерам строк. Второе правило исполняется после окончания ввода. Оно печатает все строки. Если это программа исполняется со следующим вводом:

5 I am the Five man
2 Who are you? The new number two!
4 . . . And four on the floor
1 Who is number one?
3 I three you.

выход будет таким:

1 Who is number one?
2 Who are you? The new number two!
3 I three you.
4 . . . And four on the floor
5 I am the Five man

Если номер строки повторяется, то последняя строка с этим номером перекроет остальные. Пропуски в номерах будут обрабатываться, если слегка усовершенствовать правило END программы:

END -
for (x = 1; x != max; x++)
if (x in arr)
print arr[x] ""

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



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





Copyright © 2005-2016 Project.Net.Ru