КаталогИндекс раздела
НазадОглавлениеВперед


      

Лабораторная работа 4

Цель работы: ознакомление с утилитами системы Unix.

Выполнение работы

В составе операционной системы 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*: с которыми Вы работали в работе N3. Результат сохранить в новом файле.
Таблицы, содержащиеся в этих файлах, образуют "базу данных", концептуальная схема которой показана здесь.
Задача 3 Выбрать и вывести на экран в удобном для восприятия формате информацию, определенную в Вашем варианте индивидуального задания.

Варианты индивидуальных заданий

1 2 3 4 5
6 7 8 9 10
11 12 13 14 15

Предъявление результатов и содержание отчета.

Отчет по лабораторной работе 4 должен содержать тексты трех последовательности команд и протокол их выполнения.

Пример выполнения задания.

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

Справка

Избранные команды Unix. Краткое описание.


НазадОглавлениеВперед
КаталогИндекс раздела