Книга: Искусство программирования на языке сценариев командной оболочки

B.2. Awk

B.2. Awk

Awk -- это полноценный язык обработки текстовой информации с синтаксисом, напоминающим синтаксис языка C. Он обладает довольно широким набором возможностей, однако, мы рассмотрим лишь некоторые из них -- наиболее употребимые в сценариях командной оболочки.

Awk "разбивает" каждую строку на отдельные поля. По-умолчанию, поля -- это последовательности символов, отделенные друг от друга пробелами, однако имеется возможность назначения других символов, в качестве разделителя полей. Awk анализирует и обрабатывает каждое поле в отдельности. Это делает его идеальным инструментом для работы со структурированными текстовыми файлами, осбенно с таблицами.

Внутри сценариев командной оболочки, код awk, заключается в "строгие" (одиночные) кавычки и фигурные скобки.

awk '{print $3}' $filename

# Выводит содержимое 3-го поля из файла $filename на устройство stdout.

awk '{print $1 $5 $6}' $filename

# Выводит содержимое 1-го, 5-го и 6-го полей из файла $filename.

Только что, мы рассмотрели действие команды print. Еще, на чем мы остановимся -- это переменные. Awk работает с переменными подобно сценариям командной оболочки, но более гибко.

{ total += ${column_number} }

Эта команда добавит содержимое переменной column_number к переменной "total". Чтобы, в завершение вывести "total", можно использовать команду END, которая открывает блок кода, отрабатывающий после того, как будут обработаны все входные данные.

END { print total }

Команде END, соответствует команда BEGIN, которая открывает блок кода, отрабатывающий перед началом обработки входных данных.

Примеры использования awk в сценариях командной оболочки, вы найдете в:

1. Пример 11-10

2. Пример 16-7

3. Пример 12-24

4. Пример 33-3

5. Пример 9-22

6. Пример 11-16

7. Пример 27-1

8. Пример 27-2

9. Пример 10-3

10. Пример 12-42

11. Пример 9-26

12. Пример 12-3

13. Пример 9-12

14. Пример 33-11

15. Пример 10-8

Это все, что я хотел рассказать об awk. Дополнительные ссылки на информацию об awk, вы найдете в разделе Литература.

Оглавление книги


Генерация: 0.447. Запросов К БД/Cache: 2 / 0
поделиться
Вверх Вниз