- •Министерство образования и науки Украины
- •Практическое занятие №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. Содержание отчёта
1.2. Регулярные выражения
Регулярные выражения представляют собой язык описания текстовых шаблонов. Шаблон представляет собой РВ, заключенное в символы "/.../". Регулярные выражения содержат образцы символов, входящих в искомое текстовое выражение, и конструкции, определяемые специальными символами (метасимволами).
Например:
/Olga/ - Указывает на строки, содержащие Olga.
/[Oo]lga|[Mm]ike|[Mm]al/ - Указывает на строки, содержащие Olga или olga или Mike или mike или Mal или mal.
/number[0-9]/ - Указывает на строки, содержащие number0 или number1 или ... number9.
Метасимволы, используемые в регулярных выражениях
^ |
начало строки |
$ |
конец строки |
[] |
любой символ, заключенный в квадратные скобки; чтобы задать диапазон символов, в квадратных скобках указываются через дефис первый и последний символы диапазона |
[^] |
любой символ, кроме символов, заданных в квадратных скобках |
. |
любой отдельный символ |
\ |
отменяет специальное значение следующего за ним метасимвола |
* |
указывает, что предыдущий шаблон встречается 0 или более раз |
\{n\} |
указывает, что предыдущий шаблон встречается ровно n раз |
\{n,\} |
указывает, что предыдущий шаблон встречается не менее n раз |
\{,n\} |
указывает, что предыдущий шаблон встречается не более n раз |
\{n,m\} |
указывает, что предыдущий шаблон встречается не менее n и не более m раз |
Примеры регулярных выражений
^the |
ищутся строки, начинающиеся с буквосочетания "the" |
be$ |
ищутся строки, заканчивающиеся буквосочетанием "be" |
[Ss]igna[lL] |
ищутся строки, содержащие буквосочетания: "signal", "Signal", "signaL" или "SignaL" |
\. |
ищутся строки, содержащие точку |
^...th |
ищутся строки, содержащие символы "th" в 4-й и 5-й позициях |
^.*\{53\}th |
ищутся строки, содержащие символы "th" в 54-й и 55-й позициях |
^.*\{10,30\}th |
ищутся строки, содержащие символы "th" в любых позициях между 11-й и 31-й |
^.....$ |
ищутся строки, состоящие из 5 любых символов |
^t.*e$ |
ищутся строки, начинающиеся с буквы "t" и заканчивающиеся буквой "e" |
[0-9][a-z] |
ищутся строки, содержащие комбинацию: цифра-прописная буква |
[^123] |
ищутся строки, не содержащие цифр "1" или "2" или "3" |
В языке awk синтаксис базовых РВ расширен следующими дополнениями:
"()" - скобки для группирования РВ;
"|" - логическое "или";
"+" - плюс, стоящий за РВ, означает любую последовательность вхождений этого РВ, начиная с первого;
"?" - знак вопроса, стоящий за РВ, означает 0 или 1 вхождений этого РВ.
В шаблоне также допускаются выражения отношения, которые могут быть двух типов:
< Выражение> < Принадлежность> < Выражение>
< Выражение> < Лог. Операция> < Выражение>
Принадлежность:
~ - Содержится;
!~ - Не содержится.
Лог. Операция: < , < =, ==, !=, > =, > - в их обычном смысле. В левой части таких выражений в обоих случаях обычно применяется имя поля строки, в правой, в первом случае - шаблон, во втором - любое выражение.
Например:
$1 ~ /[Oo]lga/ - Указывает на строки, первое поле которых содержит Olga или olga.
$1 > = "s" - Указывает на строки, начинающиеся с символа s или следующих за ним по порядку: t, u, v...
Допускается логическая комбинация образцов (шаблонов) с использованием следующих знаков: || - ``или'', & & - ``и'', ! - ``не''.
Последовательности образцов, соединенных одним из знаков читаются слева направо.
Комбинация вида: шаблон1, шаблон2
означает применение задаваемых с данными шаблонами действий к строке, удовлетворяющей шаблону1, и далее - ко всем следующим за ней строкам, вплоть до появления строки, удовлетворяющей шаблону2, включительно.
В языке awk предусмотрены два специальных шаблона - BEGIN и END. Первый описывает действия, выполняемые перед началом чтения файла, второй - действия, выполняемые после окончания чтения.