- •Лабораторна робота 3
- •Базові регулярні вираження
- •Метасимволы, використовувані в регулярних вираженнях
- •Приклади регулярних виражень
- •Приклад виконання лабораторної роботи n3 Завдання 1
- •Завдання 2
- •Завдання 3
- •Варіанти індивідуальних завдань
- •Хід роботи
- •Вибрані команди Unix. Короткий опис:
- •Приклад виконання лабораторної роботи n4 Завдання 1
- •Завдання 1, варіант 1
- •Завдання 1, варіант 2
- •Завдання 1, варіант 3
- •Завдання 2
- •Завдання 2 варіант 1
- •Завдання 2, варіант 2
- •Завдання 2, варіант 3
- •Завдання 3
- •Завдання 3 варіант 1
- •Завдання 3 варіант 2
- •Варіанти індивідуальних завдань
- •Хід роботи
- •Команда awk :
- •Опис шаблонів
- •Приклад виконання лабораторної роботи n5 Приклад 1-1
- •Приклад 1-2
- •Приклад 1-3
- •Приклад 2-3.1
- •Приклад 2-3.2
- •Приклад 2-3.3
- •Приклад 2-3.4
- •Варіанти індивідуальних завдань
- •Команда sh:
- •Команда env:
- •Приклад виконання лабораторної роботи n6
- •Варіанти індивідуальних завдань
- •Хід роботи
- •Деякі приклади програмування
- •Приклад 2
- •Приклад 3
- •Варіанти індивідуальних завдань
Хід роботи
Виконуючи попередню роботові, Ви, можливо, не раз поскаржилися на відсутність в елементарних фільтрах 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 направляється у вихідний потік. |
||||
Опції |
|||||
|
|
Мова awk
Скрипт_awk являє собою програму специальном языке awk, описывающую шаблоны, по которым отбираются строки и действия над ними. Скрипт представляет собой последовательность элементов, каждый из которых имеет вид:
[ шаблон ] { дія }
Семантика елемента така, що якщо перебуває рядок, відповідна до даного шаблону, то над нею виконується дана дія. Якщо шаблон пропущений, то дія виконується над усіма рядками файлу. Опис шаблонів ґрунтується на базовых регулярных выражениях (РВ), опис дій - на синтаксисі мови програмування C. При роботі awk читає файл послідовно, рядок за рядком і над рядками, що задовольняють заданим у скрипте шаблонам, виконує задані дії.