- •Лабораторна робота 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
Для файлу (файлів) із заданим іменем визначити, чи є він символічним посиланням. Якщо так - простежити весь ланцюжок посилань від цього імені.
Формат виклику:
команда файл...
Передбачається, що ланцюжок посилань не виходить за межі того каталогу, у якому перебуває файл. Рекомандуется для перевірки програми використовувати файли з каталогу /home/metod.
Тип файлу - символічного посилання може бути перевірений виконанням команди ls с опцією -l. Символічні посилання мають у видачі цієї команди тип l.
Результат повинен мати приблизно такий вид:
$ команда
file1 -> file2 -> file2 -> file4
Варіант 2
Перевірити заданий каталог на наявність у ньому недозволених м'яких посилань. Якщо такі є - відправити про них повідомлення по mail користувачеві derev.
команда каталог...
Рекомендується для перевірки програми використовувати каталог /home/metod.
Тип файлу - символічного посилання може бути перевірений виконанням команди ls с опцією -l. Символічні посилання мають у видачі цієї команди тип l.
Якщо файл є символічним посиланням, то недозволене посилання може бути перевірена спробою читання файлу. Читання з файлу - недозволеного посилання приводить до повідомлення "No such file". Але майте на увазі, що спробою читання може виявитися також невдалої через відсутність у Вас прав доступу до цього файлу.
Відправлення повідомлення може бути забезпечена перенапрямком стандартного введення команди mail на файл.
Варіант 3
Підрахувати кількість рядків, що містять задане слово в заданому файлі. Якщо файл має тип, відмінний від "ISO-8859 text", підрахунок не робити, а просто вивести повідомлення про це.
Формат виклику:
команда файл...
Рекомендується для перевірки програми використовувати каталог /home/metod.
Для перевірки типу файлу використовуйте команду file, для підрахунку числа слів - wc.
Варіант 4
З файлу /home/metod/task1 прочитати рядок, перше слово якої - Ваше мережне ім'я. Інша після пробілу частина цього рядка - перелік ( через пробіл) імен файлів. Вивести 2-е рядка всіх перерахованих файлів в окремий файл у своєму домашньому каталозі. Перед кожним рядком указати ім'я файлу, якому вона належить.
При виконанні цього завдання можна обійтися майже винятково командами введення-виводу й редагування.
Варіант 5
У заданому файлі визначити повторювані рядки, вивести їхні номери.
Формат виклику:
команда файл...
Алгоритм розв'язку може бути, наприклад, що випливають: пронумерувати рядка файлу й відсортувати (sort)його по рядках. Залишити дві копії відсортованого файлу: одну в повному обсязі, а другу, "компактну" з видаленням повторюваних рядків (uniq).Виводити черговий рядок "компактного файлу в окремий файл і виконувати його з'єднання (join)с повною копією. Якщо в результаті вийде більше одному рядка (перевірити це можна командою (wc),-рядок повторюється.
Варіант 6
З файлу /home/metod/task1 прочитати рядок, перше слово якої - Ваше мережне ім'я. Інша після пробілу частина цього рядка - перелік ( через пробіл) імен файлів. Якщо розмір файлу із заданого списку перевищує 20 рядків, створити у своєму домашньому каталозі однойменну копію цього файлу, у яку занести тільки його перші 20 рядків.
Розмір файлу може бути перевірений командою wc, А перші рядки файлу можна вивести командою head. Для виділення локального імені файлу з його повного імені використовуйте команду basename.
Варіант 7
Визначити, хто з користувачів з першими буквами імені "ap" увійшов у систему раніше всіх. Послати йому повідомлення, тіло якого складається з 2-х рядків усіх заданих файлів.
Формат виклику:
команда файл...
Команда who роздруковує інформацію про працюючих користувачів, упорядковану за часом їх входу в систему.
Відправлення повідомлення може бути забезпечена перенапрямком стандартного введення команди write на файл.
Варіант 8
У заданому каталозі визначити, які імена файлів є твердими посиланнями на той самий файл.
Формат виклику:
команда каталог...
Команда ls с опцією -l видає числа файлових індексів. Файли, у яких ці числа збігаються, і є твердими посиланнями на той самий файл.
Алгоритм розв'язку може бути, наприклад, що випливають: пронумерувати рядка файлу й відсортувати (sort)список файлів по індексах. Залишити дві копії відсортованого списку: одну в повному обсязі, а другу, "компактну" - з видаленням повторюваних індексів (uniq).Виводити черговий рядок "компактного списку в окремий файл і виконувати його з'єднання (join)с повною копією. Якщо в результаті вийде більше одному рядка (перевірити це можна командою (wc),-індекс повторюється.
Варіант 9
За інформацією файлів /home/metod/query* визначити середню зарплату для заданої посади.
Формат виклику:
команда посада...
Для вибірки з /home/metod/query1 тільки рядків, пов'язаних із заданою посадою, можна, наприклад, вивести назву посади в окремий файл, а потім виконати його з'єднання (join)с файлом /home/metod/query1.
Варіант 10
У заданому каталозі знайти порожні файли. Створити у своєму домашньому каталозі однойменні файли й занести в них уміст файлу-параметра.
Формат виклику:
команда файл каталог...
Порожні файли можна знайти за допомогою команди find. Потім прийде виділяти локальне ім'я файлу з його повного імені, для чого можна застосувати команду basename. "Створення" виконується простим копіювання (cp.)файлу-параметра з іншим іменем.
Варіант 11
Вивести імена всіх файлів і підкаталогів у заданому каталозі, що належать користувачеві із заданим іменем і загальне число всіх інших файлів і каталогів.
команда каталог користувач...
Команда ls с опцією -l видасть список файлів із вказівкою їх власників.
Команда wc підрахує число рядків у цьому списку.
Варіант 12
За інформацією файлів /home/metod/query* вивести список співробітників, що працюють у відділі "SALES" заданого міста й для кожного співробітника - число забезпечених їм продажів.
Формат виклику:
команда місто...
Прийде виконати з'єднання (join)файлів - таблиць бази даних, для того, щоб вибрати продажу, що ставляться до обраних співробітників. А співробітників, що працюють у заданому місті можна визначити або з'єднанням файлу, що полягає з єдиного рядка - назви міста з файлом query1, або використовуючи редактор sed.
Варіант 13
Вивести список усіх каталогів, перерахованих у змінній оточення PATH, і для кожного вивести права доступу до нього
Уміст PATH може бути отримане за допомогою команди env, а інформацію про права дає команда ls с опцією -l.
Варіант 14
За інформацією файлів /home/metod/query* вивести для заданого коду покупця коди всіх товарів, які він коли-або купував.
Формат виклику:
команда код_покупця...
Потрібно виконати з'єднання (join)файлів - таблиць бази даних, для того, щоб вибрати продажу, що ставляться до конкретних покупців. А вибрати запису, що ставляться до заданого покупця можна або використовуючи редактор sed, або з'єднанням з файлу, що полягають із єдиного рядка - коду покупця.
Варіант 15
Вивести списки всіх файлів у заданому каталозі, які були створені в один день.
Формат виклику:
команда каталог...
Команда ls с опцією -l видасть список файлів із вказівкою дати створення. Потім можна вибирати рядок з отриманого списку й або з'єднувати (join)її зі списком, або використовувати дату з неї для формування шаблону пошуку в команді sed або grep.