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

Хід роботи

У складі операційної системи Unix є велика кількість системних утиліт, призначених для обробки текстів. Утиліти cat і grep, з якими Ви вже повинні були познайомитися, належать до них. Інші утиліти такого роду: cmp - порівняння файлів, cut - "вирізання" полів з тексту й paste - зчеплення рядків файлів, head - роздруківка початку файлу й tail - роздруківка останніх рядків файлу, sort - сортування, join - об'єднання, sed - потоковий текстовий редактор і багато інші.

Кожна з таких утиліт виконує в принципі просту обробку текстового файлу, але послідовно застосовуючи одну утиліту за інший, можна скомбінувати їхньої дії в таким чином, що підсумкове перетворення тексту буде досить складним. Обробка тексту за допомогою послідовних викликів системних утиліт називається в Unix "фільтрацією" тексту, а самі утиліти називаються фільтрами. Такі назви походять від метафоричної вистави проходження потоку даних через ряд фільтрів, кожний з яких робить відбір якихось необхідних складових, у результаті чого ми одержуємо ті дані, які нам потрібні - "відфільтровані" дані.

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

За замовчуванням більшість команд Unix читає вхідні дані з потоку стандартного введення (клавіатура) і направляє вихідні дані в потік стандартного виводу (екран). Як правило, одним з параметрів команди є ім'я (імена) файлу (файлів), який (які) вона обробляє. Якщо таке ім'я не задане, команда читає вхідні дані зі стандартного введення. Якщо в команді може задаватися кілька файлів, то звичайно стандартне введення позначається серед імен файлів символом '-'.

Є, однак, можливість перенаправляти стандартні потоки. Запис виду:

команда [аргументи] < файл

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

Записи виду:

команда [аргументи] > файл

і

команда [аргументи] >> файл

означають перенапрямок стандартного виводу, тобто те, що те дані, які команда звичайно виводить на екран, тепер записані нею у файл із іменем файл. Різниця між '>' і '>>' полягає в тому, що в першому випадку файл буде створюватися заново, а в другому, якщо файл із таким іменем уже існує, вивід команди буде доданий у кінець файлу.

Запис виду:

команда1 [аргументи] | команда2 [аргументи]

визначає конвеєр або програмний канал. У цьому випадку стандартний вивід команди1 буде переспрямований у стандартне введення команди2. Програмний канал є найбільш популярним засобам при побудові ланцюжків фільтрації.

У даній лабораторній роботі Вам пропонується розробити послідовності команд для розв'язку трьох завдань обробки текстових файлів. Основним інструментом для розв'язку цих завдань для Вас будуть, очевидно (але не обов'язково), буде редактор sed і утиліта з'єднання join. Інші засоби Ви виберете самі. Ми, однак, забороняємо використовувати в цій роботі утиліту awk - їй буде присвячена окрема робота.

Завдання 1

Виконати відповідно до Вашого варіанта індивідуального завдання перетворення одного з текстових файлів, створених Вами в роботі N1. Результат зберегти в новому файлі, вихідний файл повинен залишитися без зміни.

Завдання 2

Виконати відповідно до Вашого варіанта індивідуального завдання вибірку даних з файлів ../metod/query*:

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

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

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

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

  • структура файлу query5; склад файлу query5

с якими Ви працювали в роботі N3. Результат зберегти в новому файлі. Таблиці, що втримуються в цих файлах, утворюють " базу даних", концептуальна схема якої показана здесь.

Завдання 3

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

Довідка