Руководство пользователя для GNU Awk
2. Начальные сведения об awk
2.3 Очень простой пример
Следующая команда выполняет простую awk-программу, которая ищет во входном файле `BBS-list' цепочки символов `foo'. (Цепочка символов (string) обычно называется цепочкой. Этот термин происходит от английских наименований типа "цепочка жемчужин" или "цепочка вагонов в поезде.")
awk '/foo/ - print $0 ""' BBS-list.
Когда находятся строки, содержащие `foo', они печатаются, потому что `print $0' означает печать текущей строки. (Просто `print' означает то же самое, так что можно написать его вместо print $0.)
Заметьте, что слеши `/' окружают цепочку `foo' в awk-программе. Слеши указывают, что `foo' есть образец для поиска. Этот тип образца называется регулярным выражением и объясняется в деталях ниже (см. Гл. 4 [Регулярные Выражения], стр. 23). Образец позволяет различать части слов. Awk-программы заключаются в одиночные кавычки, так что оболочка не будет рассматривать слеши как специальные символы оболочки.
Вот что напечатает наша программа:
$ awk '/foo/ - print $0 ""' BBS-list
a fooey 555-1234 2400/1200/300 B a foot 555-6699 1200/300 B a macfoo 555-6480
1200/300 A a sabafoo 555-2127 1200/300 C
В правиле awk могут быть опущены либо образец, либо действие, но не оба вместе. Если опущен образец, действие выполняется для каждой входной строки. Если опущено действие, действием по умолчанию является печать всех строк, соответствующих образцу.
Таким образом, мы можем опустить действие (оператор печати и фигурные скобки) в предыдущем примере, а результат останется прежним: все строчки с образцом `foo' будут напечатаны. Если же мы опустим оператор печати, но оставим фигурные скобки, то это будет означать пустое действие и ничего не будет напечатано.
Назад | Вперед
Содержание (общее) | Содержание раздела
Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
|