- •Министерство образования и науки Украины
- •Практическое занятие №1
- •1.1. Сокращенная запись двоичных чисел в восьмеричной и шестнадцатеричной системах счисления
- •1.2. Преобразование восьмеричных и шестнадцатеричных чисел в двоичные
- •1.3. Преобразование двоичных, восьмеричных и шестнадцатеричных чисел в десятичные
- •1.4. Преобразование десятичных чисел в двоичные, восьмеричные и шестнадцатеричные
- •2. Упражнения
- •3. Содержание отчёта
- •Практическое занятие №2
- •1.1. Вход в систему
- •1.2. Редактирование командной строки
- •1.3. Память командных строк
- •1.4. Переключение виртуальных консолей
- •1.5. Изменение консольных шрифтов
- •1.6. Основные команды
- •Выполнение некоторых команд
- •2. Команда просмотра содержимого каталогов -ls (LiSt) – выдает на экран перечень файлов и каталогов (по умолчанию из текущего каталога).
- •Жесткая ссылка обозначает ся так же, как файл, на который она ссылается, счетчик ссылок при этом будет иметь значение больше 1.
- •3. Команда создание новых каталогов - mkdir.
- •5. Команда копирование файлов -cp (CoPy).
- •6. Команда перемещение файлов - mv (MoVe).
- •7. Команда удаление файлов - rm (ReMove).
- •8. Команды просмотра содержимого файлов more и cat.
- •Подстановочные символы
- •1.7. Выход из системы
- •2. Упражнения
- •Используя справочную информацию из п.1.6 Основные команды, изучите работу рассмотренных команд с различными параметрами и опциями:
- •1.2. Перенаправление ввода и вывода
- •1.3. Перенаправление с добавлением
- •1.4. Использование конвейера
- •2. Упражнения
- •3. Содержание отчёта
- •Справочная информация
- •Практическое занятие №4 Псевдонимы команд в ос qnx Цель – создание псевдонимов команд для облегчения работы в среде ос qnx
- •1. Краткие теоретические сведения
- •1.1. Управление связями файлов
- •1.2. Жесткие связи
- •1.3. Символические связи
- •1.4. Права доступа к файлам
- •1.5. Зависимости
- •1.6. Изменение прав доступа
- •2. Упражнения
- •3. Содержание отчёта
- •1.2. Сравнение файлов (команда diff)
- •1.3. Подсчет числа слов, строк и байт в файле (команда wc)
- •1.4. Потоковый редактор sed
- •2. Упражнения
- •/Usr/bin/grep
- •/Usr/xpg4/bin/grep
- •/Usr/xpg4/bin/grep
- •Операнды
- •/Usr/bin/grep
- •/Usr/xpg4/bin/grep
- •Использование
- •Работа с большими файлами
- •/Usr/bin/who
- •/Usr/xpg4/bin/who
- •Операнды
- •1.1. Ввод текста
- •1.2. Редактирование текста
- •1.3. Сохранение файлов и выход из VI
- •1.4. Редактирование еще одного файла
- •1.5. Включение других файлов
- •1.6. Выполнение команд Shell
- •2. Упражнения
- •3. Содержание отчёта
- •Практическое занятие №7 Работа с текстовыми файлами Цель – знакомство с командами, работающими с текстовыми файлами (awk-интерпретатор скриптовый)
- •1. Краткие теоретические сведения
- •1.1. Язык awk
- •1.2. Регулярные выражения
- •Метасимволы, используемые в регулярных выражениях
- •1.3. Действия
- •1.4. Awk-переменные и выражения
- •1.5. Использование операций
- •1.6. Использование массивов
- •1.7. Селекторы
- •1.8. Использование операторов
- •1.9. Ввод и вывод данных
- •1.10. Встроенные функции
- •2. Упражнения
- •Структура файла query1
- •Структура файла query2
- •3. Содержание отчёта
- •1.2. Граматика языка shell
- •2. Упражнения
- •3. Содержание отчёта
- •Выполнить:
- •2. Упражнения
- •Примечание:
- •3. Содержание отчёта
- •1.1. Компоновка объектных модулей
- •1.2. Отладка
- •2. Упражнения
- •Задание №1
- •Задание №2
- •Задание №3
- •Задание №4
- •Задание №5
- •Задание №6
- •Задание №13
- •Задание №14
- •Задание №15
- •Задание №16
- •Задание №17
- •Практическое занятие №11
- •2. Упражнения
- •3. Содержание отчёта
- •1.2. Создание каталога
- •1.3. Биты режима для прав доступа
- •1.4. Удаление каталога
- •1.5. Создание жесткой связи
- •1.6. Создание символической связи
- •1.7. Чтение символической связи
- •1.8. Переименование файла
- •1.9. Удаление файла
- •1.10. Обработка ошибок
- •2. Упражнения
- •3. Содержание отчёта
- •1.2. Проверка возможностей управления работой и процессами в shell
- •2. Упражнения
- •3. Содержание отчёта
- •1.3. Ошибки, связанные с именами файлов
- •1.4. Доступ к файлу
- •2. Упражнения
- •3. Содержание отчёта
- •Практическое занятие №15 Организация процессов вQnx
- •1. Методические указания по выполнению практической работы
- •1.1. Файл main.O
- •1.2. Файл input.C
- •1.3. Файл output.C
- •1.4. Файл process.C
- •1.5. Используемые функции
- •1.6. Получение информации о процессах
- •2. Упражнения
- •1.2. Клиент
- •1.3. Определение идентификаторов узла, процесса и канала (nd/pid/chid) нужного сервера
- •1.4. Применение обмена сообщениями
- •2. Упражнения
- •3. Содержание отчёта
- •Практическое занятие №17 Организация потоков в qnx
- •1. Краткие теоретические сведения
- •1.1. Запуск потока
- •1.2. Администрирование атрибутов потока
- •Текст программы
- •Результаты
- •1.2. Текст программы
- •1.3. Последовательность действий
- •1.4. Результаты
- •2. Упражнения
- •3. Содержание отчёта
Практическое занятие №7 Работа с текстовыми файлами Цель – знакомство с командами, работающими с текстовыми файлами (awk-интерпретатор скриптовый)
1. Краткие теоретические сведения
awk – команда контекстного поиска и преобразования текста. Она - фильтр. Ее можно рассматривать как оболочку "awk" в оболочке "shell". Эта утилита, предназначенная для простых, механических и вычислительных манипуляций над данными. Довольно несложные операции часто необходимо выполнить над целыми пакетами файлов, а писать для этого программу на одном из стандартных языков программирования является утомительным и, как правило, не очень простым делом. Оптимальное решение проблемы - использование специальной утилиты awk, включающей в себя не громоздкий и удобный язык программирования, позволяющий решать задачи обработки данных с помощью коротких программ, состоящих из двух-трех строк. Утилита awk изначально объединяла свойства утилит sed и grep.
awk сканирует input (стандартный или указываемый набор файлов), и над строками, удовлетворяющими заданному образцу, выполняет указываемые действия. Строка может содержать максимально до 256 символов. Команда awk сопоставляет строки исходных файлов с шаблонами, определенными в программе. Шаблоны можно задать либо непосредственно в командной строке, либо поместить в файл с именем программа и воспользоваться опцией -f. Если шаблоны указаны в командной строке, их следует заключить в одинарные кавычки ('), чтобы избежать интерпретации shell'ом.
СИНТАКСИС
awk [опции] ['скрипт_awk'] [файл...]
может быть записан в двух вариантах:
1. awk [-Fc] [-f file] [files]
file - файл с AWK-программой
2. awk [-Fc] [prog] [files]
prog – программа в командной строке
files - файлы, предназначенные для AWK-обработки.
-Fc - устанавливает разделитель полей
ОПИСАНИЕ
Утилита awk ищет в файле строки, удовлетворяющие шаблонам, заданным в скрипте_awk, и выполняет над ними действия, заданные в скрипте_awk. Если не указано ни одного файла или задано имя файла -, используется стандартный ввод.
ОПЦИИ
-F символ
указывает символ, используемый в обрабатываемом тексте как разделитель полей. По умолчанию - пробел.
-f файл
указывает имя файла, из которого читается скрипт_awk. Если эта опция задана, скрипт_awk в командной строке не вводится.
1.1. Язык awk
Общая структура AWK-программы
1. Язык программирования AWK допускает использование:
1.1. Полей; каждая сканируемая строка рассматривается как состоящая из полей, разделенных разделительными символами (по умолчанию - пробел).
На поля можно ссылаться из AWK программы следующим образом:
$1 - Первое поле;
$2 - Второе поле;
... и так далее...
$0 - Ссылается на всю строку целиком.
Строка может содержать максимально до 100 полей.
1.2. Переменных
стандартных переменных:
К предопределенным относятся: |
Умолчания: |
NR - Номер текущей входной строки |
|
NF - Число полей во входной строке |
|
RS - разделитель строк на вводе |
"\0" |
FS - Разделитель полей во входной строке |
пробел и/или табуляция |
ORS - Разделитель записей в выходном файле |
RS |
OFS - Разделитель полей в выходной строке |
FS |
OFMT - формат вывода чиcл |
"%.6g" |
FILENAME - Имя текущего обрабатываемого файла. |
|
пользовательских переменных;
Они не требуют объявления, а автоматически объявляются при их появлении в программе. Переменные могут интерпретироваться как числовые или строковые, интерпретация выполняется в зависимости от контекста использования переменной.
массивов.
Массив не объявляется, а начинает существовать в момент первого использования, т.е. принимают значения из контекста. Массивы в скрипте awk являются динамическими, то есть, новые элементы добавляются в массив по мере необходимости. Индексом в массиве может быть как числовое (ненулевое), так и строковое значение. Массивы ассоциативные, т.е. не по вычисляемому индексу, а по совпадению содержания.
Переменные могут интерпретироваться как числовые или строковые. Они принимают значения в зависимости от контекста, например:
x = 1, x воспринимается как число;
x = " ", x - строка;
x + "abc" - результат операции интерпретируется как число независимо от того, было ли х числом или строкой. Если строка не может быть интерпретирована как число ("abc"), то ее значение становится 0.
Строка может содержать максимально до 256 символов.
Ссылки на поля $1, $2, ... могут интерпретироваться в качестве переменных, например:
$1 = "3" + $2 - первое поле принимает значение второго поля, увеличенного на 3.
$(i+1) - интерпретируется как поле, номер которого зависит от значения переменной i.
Допускается использование массивов. Массивы не объявляются, а принимают значения из контекста, например:
x[NR] = $0 - элементу массива x, индексированному NR, присваивается обрабатываемая строка.
x["apple"] - элементы массива могут индексироваться не числовым значением, т.е. строкой.
1.3. Арифметических выражений.
2. Образец (шаблон):
2.1. Регулярное выражение;
2.2. Выражение отношения;
2.3. Комбинация образцов;
2.4. BEGIN и END.
3. Действие:
3.1. Последовательность предложений, разделенных ``;'' или ``\n'' (новая строка). Где предложение:
Вывод (Печать);
Присваивание;
Встроенная функция;
Управляющая структура.
Программа (Скрипт_awk) представляет собой программу на специальном языке awk, описывающую шаблоны, по которым отбираются строки и действия над ними. Скрипт представляет собой последовательность элементов, каждый из которых имеет вид:
[ шаблон ] { действие }
[ шаблон ] { действие }
…
При работе awk читает файл последовательно, строку за строкой и над строками, удовлетворяющими заданным в скрипте шаблонам, выполняет заданные действия. Семантика элемента такова, что если находится строка, соответствующая данному шаблону, то над ней выполняется данное действие.
Частные случаи:
{действие} - Если шаблон пропущен, то действие выполняется над всеми строками файла.
шаблон - когда выводятся строки с данным шаблоном.
Описание шаблонов основывается на базовых регулярных выражениях (РВ), описание действий - на синтаксисе языка программирования C. Действие может состоять из последовательности операторов, разделяемой ";" или переводом строки или закрывающей скобкой.
Возможны комментарии (как в shell "#.........").