Мы поможем в написании ваших работ!
ЗНАЕТЕ ЛИ ВЫ?
|
Варіанти індивідуальних завдань
Варіант
| Номер завдання
| Текст завдання
| 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.
Довідка
Команда sh:
Синтаксис
|
| sh файл [ аргументи...]
| Опис
|
| Команда sh викликає командний інтерпретатор shell для виконання програми або командного скрипта, записаного у файлі. При цьому для файлу можуть і не передбачатися права на виконання.
| Команда env:
Синтаксис
|
| env [-] [ім'я=значення...] [команда аргумент...]
| Опис
|
| Команда env одержує поточне оточення, модифікує його у відповідності зі своїми аргументами, і потім виконує команду в модифікованому оточенні. Пари ім'я=значення поєднуються з наслідуваним оточенням перед виконанням команди. При наявності прапора "-" наслідуване оточення повністю ігнорується, і команда виконується з тим оточенням, яке визначено командним рядком env.
Якщо команда не задана, то сформоване оточення видається на стандартний вивід, по одній парі ім'я=значення в рядку.
|
|