Читаем Linux и UNIX: программирование в shell. Руководство разработчика. полностью

В процедурной части шаблона begin в переменную FS записывается символ '#" -pазделитель полей во входном файле. Затем создаются два массива, belt и student, индексами которых являются соответственно названия поясов и названия категорий учеников. Оба массива остаются неинициализированными, их тип не определен.

В первом цикле for значение первого поля каждой записи входного файла сравнивается с названием индекса массива belt (индекс равен "Yellow", "Orange" или "Red"). Если обнаруживается совпадение, выполняется приращение элемента, хранящегося в массиве по этому индексу. Поскольку операция ++ (инкремент) определена для целочисленных значений, утилита awk считает, что массив целочисленный, и инициализирует его элементы значением 0.

Во втором цикле for значение второго поля сравнивается с названием индекса массива student (индекс равен "Junior" или "Senior"). Результат операции вычисляется так же, как и в первом цикле.

В процедурной части шаблона end осуществляется вывод итоговых результатов.

$ belts.awk grade_student.txt

The club has 2 Red belts

The club has 2 Orange belts

The club has 3 Yellow belts

The club has 7 Senior students

The club has 8 Junior students

<p><strong>9.3. Заключение</strong></p>

Язык программирования awk может показаться сложным для изучения, но если осваивать его на примерах употребления отдельных команд и небольших сценариев, то процесс обучения не будет слишком трудным. В данной главе мы изучили основы awk, не углубляясь в детали, но, тем не менее, получили необходимый минимум сведений, относящихся к этому языку. Утилита awk является важным инструментом shell–программирования, и чтобы применять ее, вам не обязательно быть экспертом по языку awk.

<p><emphasis><strong>ГЛАВА 10</strong></emphasis></p>

Работа с редактором sed

Редактор sed относится к текстовым редакторам потокового типа и не является интерактивной программой. Он предназначен для обработки текстовых данных, поступающих из файла или стандартного входного потока. Отличительной особенностью редактора sed является то, что он позволяет модифицировать файлы в фоновом режиме. Задача пользователя сводится к тому, чтобы задать последовательность команд редактирования, а всю остальную работу выполнит сам редактор. Кроме того, sed допускает внесение всех изменений за один проход, а это превращает его в достаточно эффективный и, что важнее всего, быстродействующий инструмент редактирования текста.

В этой главе рассматриваются следующие темы:

   • синтаксис команд sed;

   • поиск строк по номерам и с использованием регулярных выражений;

   • изменение входного текста и добавление текста в выходной поток;

   • примеры команд и сценариев sed.

Команды sed вводятся в командной строке либо размещаются в файле сценария подобно тому, как это делается в случае с утилитой awk. При использовании sed важно помнить следующее: этот редактор оставляет без изменения исходный файл независимо от того, какая команда выполняется. Копия входного потока помещается в буфер редактирования, а все изменения направляются на экран или переадресуются в выходной файл.

Поскольку редактор sed не предназначен для работы в интерактивном режиме, текстовые строки, подлежащие изменению, отбираются либо по номерам, либо на основании соответствия регулярному выражению.

<p><strong>10.1. Чтение и обработка данных в sed</strong></p>

Общая схема работы редактора sed такова:

   1. Редактор последовательно извлекает строки текста из файла или стандартного входного потока и копирует их в буфер редактирования.

   2. Затем он считывает первую команду из командной строки или сценария, осуществляет поиск строки с указанным номером или строки, соответствующей шаблону, и применяет к ней эту команду.

   3. Второй пункт повторяется до тех пор, пока не будет исчерпан список команд.

<p><strong>10.2. Вызов редактора sed</strong></p>

Вызвать редактор sed можно тремя способами:

   1. Ввести набор команд sed в командной строке.

   2. Поместить набор команд sed в файл и передать его редактору sed в командной строке.

   3. Поместить набор команд sed в файл сценария и сделать его выполняемым. Если редактор sed вызывается для выполнения одиночных команд, формат

командной строки будет таким:

sed [опции] 'команды' входной_файл

Как и в awk, не забудьте заключить команды в одинарные кавычки, чтобы защитить от интерпретации находящиеся в них специальные символы.

Если команды sed помещены в отдельный файл, командная строка примет следующий вид:

sed [опции] — f файл_сценария входной_файл

Если файл сценария является исполняемым, запустить его на выполнение следует таким образом:

файл_сценария [опции] входной_файл

Когда входной файл не указан, sed будет ожидать поступления данных из стандартного входного потока: с клавиатуры или из канала.

Ниже перечислены основные опции редактора sed и описано их назначение:

Перейти на страницу:

Похожие книги

112 страниц про Париж. Опыт создания путеводителя (в помощь самостоятельным туристам)
112 страниц про Париж. Опыт создания путеводителя (в помощь самостоятельным туристам)

  По Парижу приятно гулять, бесцельно бродить, кружить по узким улочкам, отдыхать в маленьких кафе и в парках у фонтанов. Здесь есть все для любителей архитектуры, ценителей живописи, театралов, меломанов, гурманов, поклонников всевозможных развлечений. Париж притягивает, удивляет, очаровывает, постепенно приоткрывая тайны любознательному гостю, который теряется от сложности выбора: что же увидеть прямо сейчас, а что отложить на потом. Мои 112 страниц про Париж, надеюсь, помогут сделать этот выбор. Предложенные 7 прогулок по городу включают в себя не только известные всему миру достопримечательности, но и множество других, которые часто остаются за пределами стандартных туристических маршрутов.  

Елена Р Стамбулян , Елена Р. Стамбулян

Руководства / Путеводители / Словари и Энциклопедии
40+. Уход за телом
40+. Уход за телом

Женщина после 40 лет – настоящая богиня, умудренная опытом и оттого еще более прекрасная. Но чтобы надолго сохранить красоту и молодость, нужно постоянно собой заниматься: ухаживать за своим телом, руками и ногами, выполнять физические упражнения и соблюдать диету. Благодаря этой книге вы научитесь самостоятельно готовить омолаживающие, питательные, увлажняющие кремы и маски, а также скрабы и пилинги из натуральных продуктов; выполнять легкие и эффективные упражнения для стройной фигуры и профилактики варикозного расширения вен, делать массаж рук и ног, навсегда избавитесь от целлюлита и сможете легко ориентироваться в выборе омолаживающих процедур в СПА-салонах и хирургических операций в клиниках красоты. Правила здорового питания, популярные диеты и рецепты полезных блюд – в этой книге есть все, что поможет 40-летним женщинам всегда быть в форме.

Анастасия Витальевна Колпакова

Здоровье / Руководства / Здоровье и красота / Дом и досуг / Словари и Энциклопедии