- •Лабораторна робота 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
- •Варіанти індивідуальних завдань
Варіанти індивідуальних завдань
Варіант |
Номер завдання |
Текст завдання |
1 |
1 |
В одному з текстових лабораторної роботи N1 перенести третій від кінця рядок у початок файлу. |
2 |
У файлі query1 визначити середню зарплату продавців ("SALESPERSON") |
|
3 |
У файлі query2 визначити трьох покупців, яким надані найбільші кредити |
|
2 |
1 |
В одному з текстових лабораторної роботи N1 перенести третій від почала рядок у кінець файлу. |
2 |
У файлі query2 визначити середній кредит для кожного штату |
|
3 |
У файлі query3 визначити 5 найдорожчих товарів ( за максимальною ціною) |
|
3 |
1 |
В одному з текстових лабораторної роботи N1 перед кожним рядком вставити поточний час. |
2 |
У файлі query4 визначити середню суму замовлення для 1990 р. |
|
3 |
У файлі query4 визначити кількість продажів для кожного продавця |
|
4 |
1 |
В одному з текстових лабораторної роботи N1 вилучити другий рядок, що починається з букви 'Н'. |
2 |
У файлі query1 визначити кількість співробітників на кожній посаді |
|
3 |
У файлі query1 визначити відділи, у яких немає менеджерів ("MANAGER") |
|
5 |
1 |
В одному з текстових лабораторної роботи N1 залишити в кожному рядку не більш двох слів. Слова, що виходять за цю межу помістити в окремий файл. У першому файлі-результаті в тих рядках, які містять менш двох слів, у кінець рядка повинен бути доданий символ '='. У другому файлі-результаті порожніх рядків залишатися не повинне, а перед непустими рядками повинні бути зазначені їхні номери у вихідному файлі, відділені від іншого тексту одним пробілом. |
2 |
У файлі query1 визначити загальне число відділів у фірмі |
|
3 |
У файлі query3 уважаючи, що перше слово в назві товару - назва фірми, визначити число товарів кожної фірми |
|
6 |
1 |
В одному з текстових лабораторної роботи N1 залишити в кожному рядку не більш 2-х слів. Залишок перенести в наступний рядок. Якщо другий рядок у парі виявляється порожньою - друкувати в ній символ '='. |
2 |
У файлі query2 визначити покупців, у яких в адресі зазначена вулиця або т.п. ("ST.", "RD.", etc.), і їхня кількість |
|
3 |
У файлі query3 визначити товари, максимальна ціна яких більше 20, і середній відсоток по них |
|
7 |
1 |
В одному з текстових лабораторної роботи N1 перший символ кожного рядка замінити на перший символ попереднього рядка. Перший рядок залишається без змін. |
2 |
У файлі query3 визначити товари, у назві яких фігурує "BALL", і їхня загальна кількість |
|
3 |
У файлі query2 визначити міста, у яких є більш одного покупця |
|
8 |
1 |
В одному з текстових лабораторної роботи N1 поміняти місцями два перші й два останні символи кожного рядка. |
2 |
У файлі query1 визначити міста, у яких є відділи "SALES" |
|
3 |
У файлі query4 визначити три самі більші замовлення |
|
9 |
1 |
В одному з текстових лабораторної роботи N1 поміняти місцями перший і останній рядка файлу. |
2 |
У файлі query1 визначити максимальну зарплату менеджерів |
|
3 |
У файлі query2 визначити для кожного штату покупця з максимальним кредитом |
|
10 |
1 |
В одному з текстових лабораторної роботи N1 після рядків, які закінчуються крапкою або комою, вставити порожній рядок. |
2 |
У файлі query1 визначити трьох співробітників, що одержують найвищу зарплату |
|
3 |
У файлі query3 уважаючи, що перше слово в назві товару - назва фірми, визначити фірми, усі товари яких виставлені в продаж в один день |
|
11 |
1 |
В одному з текстових лабораторної роботи N1 перенести останнє слово в кожному рядку в новий рядок. Для рядків, що полягають із одного слова - не робити нічого. |
2 |
У файлі query1 визначити суму зарплати, яка зустрічається частіше інших |
|
3 |
У файлі query3 уважаючи, що перше слово в назві товару - назва фірми, визначити фірми, усі товари яких виставлені в продаж в один день |
|
12 |
1 |
В одному з текстових лабораторної роботи N1 перенести перше слово кожного рядка в початок наступного рядка. |
2 |
У файлі query1 визначити різниця між максимальною й мінімальною зарплатою |
|
3 |
У файлі query2 визначити для кожного штату число покупців, у назві яких є "SPORT" |
|
13 |
1 |
В одному з текстових лабораторної роботи N1 у всіх парних рядках перенести перше слово рядка в кінець рядка. Рядка, що містять тільки одне слово, не змінюються. |
2 |
У файлі query2 визначити число покупців для кожного штату |
|
3 |
У файлі query3 визначити товар/товари, який з'явився в продажі останнім |
|
14 |
1 |
В одному з текстових лабораторної роботи N1 у всіх непарних рядках перенести останнє слово рядка в початок рядка. Рядка, що містять тільки одне слово, не змінюються. |
2 |
У файлі query2 визначити різниця між максимальною й мінімальною сумою кредиту |
|
3 |
У файлі query3 визначити кількість товарів, виставлених у кожному місяці ( з урахуванням року) |
|
15 |
1 |
В одному з текстових лабораторної роботи N1 поміняти місцями парні рядки з непарними. |
2 |
У файлі query4 визначити різниця між максимальною й мінімальною сумою замовлення |
|
3 |
У файлі query2 визначити перші дві цифри поштового індексу для кожного штату |
Лабораторна робота 6 Тема роботи: Прості командні скрипти Ціль роботи: ознайомлення з базовими правилами створення й застосування командних скриптів. |
Хід роботи
Складна обробка текстів (і ряд інших завдань) вимагає виконання досить довгих послідовностей команд. Оскільки введення всіх команд такого ланцюжка може зайняти досить багато часу й чреватий помилками, в Unix існує поняття скрипта (сценарію). Скрипт являє собою будь-яку послідовність команд, збережену у файлі. Скрипт є текстовим файлом і створюється й редагується засобами будь-якого текстового редактора. ( Як і будь-який текстовий файл, скрипт може також створюватися й програмою або іншим скриптом.)
Програма-Скрипт може бути виконана за допомогою команди sh:
shимя_файлу_скрипта
Програма-Скрипт може стати командою Вашої системи, якщо Ви дасте їй право виконання:
chmod u+x ім'я_файлу_скрипта
(вищенаведеним оператором право виконувати скрипт дається тільки власникові файлу-скрипта).
Після того, як це зроблене, скрипт може запускатися на виконання так само, як і будь-яка команда системи - уведенням у командному рядку імені файла-скрипта. При запуску скрипта на виконання, однак, може видатися повідомлення типу:
:command not found
Це повідомлення пов'язане з тим, що каталог, у якому записаний скрпит, не визначений у системі як каталог, у якому шукаються команди. Для того, щоб обійти ця перешкода можна запускати скрипт із вказівкою шляху до нього. Наприклад, якщо каталог, у якому перебуває скрипт, є поточним, те скрипт може бути запущений командою виду:
./ім'я_файлу_скрипта
Більш універсальним способом забезпечення того, щоб скрипт був знайдений, є визначення каталогу, у якому перебуває скрипт, у числі тих, серед яких система шукає команди. У таких випадках у домашньому каталозі користувача звичайно створюється підкаталог ./bin і скрипт міститься в нього, а потім ім'я цього каталогу записується в системну змінну PATH:
PATH=$PATH:$HOME/bin; export PATH
Зверніть увагу на імена $PATH і $HOME, що фігурують у цій команді. Це імена стандартних змінних оточення. $PATH - ім'я змінн, що зберігає перелік каталогів, у яких система шукає файли, що виконуються. Каталоги перелічуються в ньому через символ ":", таким чином, у цій команді новий каталог додається до переліку, зберігаючи також і ті каталоги, які були записані в змінній оточення до цього. $HOME - ім'я змінн, що зберігає ім'я домашнього каталогу користувача.
Значення змінної PATH, як і інших змінних оточення може бути перевірене командою env
Після того, як домашній каталог доданий в PATH, скрипт може запускатися введенням у командному рядку імені файлу-скрипта навіть без вказівки каталогу, у якому він розміщений.
Наступним кроком у забезпеченні виконання власних скриптов є визначення свого каталогу в профілі користувача. Профіль - це файл $HOME/.prifile, що містить різні команди. Команди з файлу $HOME/.prifile виконуються при вході користувача в систему. Таким чином, якщо включити в профіль установку змінної PATH, при кожному Вашому вході в систему Ваш каталог $HOME/bin буде включатися в PATH автоматично.
У ході виконання лабораторної роботи Вам має бути створити послідовності команд, що реалізують виконання Вашого індивідуального завдання (варіанти завдань - ті ж, що й у роботі 4), а потім для кожної послідовності виконати наступні кроки:
Зберегти послідовність команд у файлі, перевірити виконання її за допомогою команди sh.
Додати файлу-скрипту права на виконання, перевірити виконання скрипта запуском з різних каталогів.
Після того, як будуть виконані перевірки 1, 2 для всіх трьох скриптов, створити у своєму домашньому каталозі підкаталог ./bin і перенести в нього файлы-скрипты. Включити створений підкаталог у змінну PATH і перевірити запуск скриптов з декількох різних каталогів без вказівки шляху.
Створити у своєму домашньому каталозі файл.profile і записати в нього команду установки PATH. Вийти із системи й знову ввійти в неї. Перевірити запуск скриптов з декількох різних каталогів без вказівки шляху.
Для протоколювання роботи використовуйте команду script.
Довідка