Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Операционные системы (2 семестр).docx
Скачиваний:
3
Добавлен:
12.11.2019
Размер:
193.38 Кб
Скачать

Хід роботи

Виконуючи попередню роботові, Ви, можливо, не раз поскаржилися на відсутність в елементарних фільтрах Unix обчислювальних і логічних можливостей. Цей недолік компенсується в утиліті awk, яка, будучи однієї з утиліт, що працюють із регулярними вираженнями, у тієї ж час надає програмістові алгоритмічні й обчислювальні можливості, що базуються на синтаксисі мови C. Як ви побачите нижче, багато з тихнув попередніх завдань, для розв'язку яких нам доводилося створювати довгі конвеєрні ланцюжки команд, можуть бути вирішено одним звертанням до утиліти awk.

awk може застосовуватися також і як фільтр і, сполучаючись у ланцюжку фільтрації з іншими утилітами, необмежено розширювати можливості командного керування.

Хоча синтаксис внутрішньої мови awk базується на синтаксисі мови C, слід пам'ятати, що мова awk - мова обробки текстів, у цій мові існує єдиний тип даних - рядок символів, а при виконанні обчислювальних операцій відбуваються "прозорі" перетворення строкових операндов у числові й числових результатів - у строковий тип. У даній лабораторній роботі Вам пропонується розробити програми awk для розв'язку завдань обробки текстових файлів. Ви можете комбінувати виклик awk з викликами інших утиліт, алі в більшості випадків у цьому немає необхідності.

У лабораторній роботі використовуються ті ж файли вихідних даних, які використовувалися в роботі 3:

  • текстовий файл, створений у роботі N1;

  • структура файлу ../metod/query1; склад файлу ../metod/query1

  • структура файлу ../metod/query2; склад файлу ../metod/query2

  • структура файлу ../metod/query3; склад файлу ../metod/query3

  • структура файлу ../metod/query4; склад файлу ../metod/query4

Завдання 1

Виконаєте за допомогою awk ту ж обробку текстового файлу, якові Ви виконували в Завданні 1 роботи N4.

Завдання 2-3

Виконаєте за допомогою awk обробку файлів ../metod/query..., відповідно до Вашого варіанта індивідуального завдання.

Для протоколювання роботи використовуйте команду script.

Довідка

Команда awk :

Синтаксис

 

awk [опції] ['скрипт_awk'] [файл...]

Опис

 

Утиліта awk шукає у файлі рядка, що задовольняють шаблонам, заданим у скрипте_awk, і виконує над ними дії, задані в скрипте_awk. Якщо не зазначене жодного файлу або задане ім'я файлу -, використовується стандартне введення. Результат роботи awk направляється у вихідний потік.

Опції

 

-F символ

указує символ, використовуваний в оброблюваному тексті як роздільник полів. За замовчуванням - пробіл.

-f файл

указує ім'я файлу, з якого читається скрипт_awk. Якщо ця опція задана, скрипт_awk у командному рядку не вводиться.

Мова awk

Скрипт_awk являє собою програму специальном языке awk, описывающую шаблоны, по которым отбираются строки и действия над ними. Скрипт представляет собой последовательность элементов, каждый из которых имеет вид:

[ шаблон ] { дія }

Семантика елемента така, що якщо перебуває рядок, відповідна до даного шаблону, то над нею виконується дана дія. Якщо шаблон пропущений, то дія виконується над усіма рядками файлу. Опис шаблонів ґрунтується на базовых регулярных выражениях (РВ), опис дій - на синтаксисі мови програмування C. При роботі awk читає файл послідовно, рядок за рядком і над рядками, що задовольняють заданим у скрипте шаблонам, виконує задані дії.