
- •7.080403 – Програмне забезпечення автоматизованих систем
- •1 Структура файлової системи, базовий та розгорнутий перелік команд ос unix
- •1.2 Підготовка до роботи
- •1.3 Методичні вказівки до виконання роботи
- •1.3.1 Процедура віддаленої реєстрації користувача на платформі unix
- •1.3.2 Файлова система
- •1.3.3 Середовище виконання процесів
- •1.3.4 Базові команди системи
- •1.4 Порядок виконання роботи
- •1.5 Завдання
- •1.7 Контрольні запитання
- •2 Редактор VI
- •2.3.3 Команди руху маркера по екрану монітора
- •2.3.4 Команди редактора, що забезпечують перехід у режим вводу
- •2.3.6 Команди копіювання
- •2.3.7 Команди пошуку вказаної символьної конструкції або літери
- •2.4 Порядок виконання роботи
- •2.5 Завдання
- •2.7 Контрольні запитання
- •3 Shell. Змінні оболонки shell. Застосування файла .Profile
- •3.3.2 Команда echo
- •3.3.3 Змінні середовища виконання
- •3.3.4 Файл .Profile
- •3.3.5 Використання лапок
- •3.3.6.1 Позиційні змінні (параметри)
- •3.3.6.2 Літерно-цифрові змінні (користувача)
- •3.3.6.3 Раніше визначені спеціальні змінні
- •3.3.7 Переадресація вводу-виводу за допомогою дескрипторів файлів
- •3.3.8 Шаблони, підстановки
- •3.3.9 Спеціальні символи shell операторів
- •3.4 Порядок виконання роботи
- •3.5 Завдання
- •3.7 Контрольні запитання
- •4 Shell. Оператори облонки shell. Програмування в оболонці shell
- •4.1 Мета роботи
- •4.2 Підготовка до роботи
- •4.3 Методичні вказівки до виконання роботи
- •4.3.1 Оператори мови shell
- •4.3.2 Синтаксис shell
- •If список команд
- •4.3.3 Створення та організація процедури у shell
- •4.3.4 Команди підтримки та їх особливості
- •4.3.4.1 Умовна перевірка: test
- •4.3.4.2 Оцінка арифметичних виразів expr
- •4.3.4.3 Команди true і false
- •4.3.4.4 Внутрішньорядкове введення документів
- •4.3.5 Передача параметрів до процедури shell
- •4.3.6 Приклади використання команд shell
- •4.3.6.1 Використання оператора if
- •If список команд
- •If список команд
- •4.3.6.2 Використання оператора case
- •4.3.6.3 Умовні цикли while та until
- •4.3.6.4 Організація циклу для списку: for
- •4.3.6.5 Керування циклами: break та continue
- •4.3.6.6 Кінець файла та вихід
- •4.4 Порядок виконання роботи
- •4.5 Завдання
- •4.7 Контрольні запитання
- •5 Мережні протоколи tcp/ip. Протокол telnet та протокол обміну файлами ftp
- •5.3.1.1 Командний режим telnet
- •5.4 Порядок виконання роботи
- •5.5 Завдання
- •6 Awk. Програмування на мові awk
- •6.3.1 Структура програми на мові awk
- •6.3.2 Поля
- •6.3.3 Вивід на друк
- •6.3.4 Форматований висновок
- •6.3.5 Прості шаблони
- •6.3.5 Вбудовані змінні
- •6.3.6 Змінним, обумовленим користувачем
- •6.3.7 Повідомлення про помилки
- •6.3.8 Вираження
- •6.3.8.2 Відносні вираження
- •6.3.8.3 Регулярні вираження
- •6.3.8.5 Символи
- •6.3.8.6 Комбінації виражень
- •6.3.8.6 Діапазони виражень
- •6.3.8.9 Вбудовані змінні
- •6.3.8.10 Арифметичні дії
- •6.3.8.11 Змінні поля
- •6.3.8.12 Деякі лексичні угоди
- •6.3.8.13 Вивід у файли
- •6.3.8.14 Вивід у канали
- •6.4 Порядок виконання роботи
- •6.5 Завдання
- •6.7 Контрольні запитання
- •Перелік рекомендованої літератури
6.3.1 Структура програми на мові awk
Програма на мові awk являє собою набір операторів типу „вираження-дія:
Структура: вираження {дія}
Наприклад:
$1 == „address” { print $2, $3 }
Це приклад звичайної програми на мові awk, що складається з одного оператора типу „вираження-дія”. Програма виводить на друк друге та третє поле з кожного вхідного запису, першим полем якої є „address”. У більш загальному випадку програма awk порівнює кожний вхідний рядок з кожним вираженням по черзі. Цей процес триває до вичерпання вхідного потоку.
В операторі „вираження-дія” як ліва, так і права частина можуть бути опущені. Якщо з вираженням не пов’язана будь-яка певна дія, як, наприклад:
$1 == „name”
відповідний рядок буде виведений. Якщо з дією не зазначено поруч ніякого вираження, як, наприклад:
{ print $1, $2 }
дія виконується для кожного вхідного рядка. Оскільки й права, і ліва частини оператора є необов’язковими, дії полягають у фігурних дужках, щоб їх можна було відрізнити від виражень.
Приклад використання:
awk ‘{ print $1, $2 }’ file1 file2
Слід звернути увагу на те, що оператори типу „вираження-дія” полягають в одинарних лапках. У результаті символи, подібні $, не інтерпретуватимуться shell, і програма зможе розташовуватися на декількох рядках.
Якщо в командному рядку не зазначено жодного файла, зчитування даних вироблятиметься зі стандартного пристрою уведення. Можна послатися на стандартне введення як джерело даних, зазначивши символ „дефіс” (-) замість імені одного із вхідних файлів. Наприклад:
awk ‘{ print $3,$4 }’ file1 –
Зазначений формат команди зручний у тому випадку, коли програма має невеликий розмір (кілька рядків). Якщо ж програма має більшу довжину, зручніше записати її в окремий файл і скористатися опцією –f (вибірка з файла):
awk –f файл_з_програмою необов’язковий_список_вхідних_файлів
Наприклад, для того, щоб вибрати програму з файла myprogram і виконати її над рядками, що належать файлу file1, введіть команду:
awk –f myprogram file1
6.3.2 Поля
Програма awk звичайно читає вхідний потік порядково або за одним записом; запис за замовчуванням є послідовністю символів, що завершується символом „новий рядок”. Кожний запис розбивається на поля, кожне з яких за замовчуванням є рядком символів, відмінних від пробілу й символу табуляції.
Як
приклад файла, що є вхідним для більшості
програм, наведених у лабораторній
роботі, використовуватимемо файл
countries, що містить дані про 10 найбільші
країни світу. Кожний запис складається
з найменування країни, розміру її площі
у квадратних милях, населення в
USSR 8650 262 Asia
……......
Algeria 920 18 Africa
Файл містить звичайні дані, оброблювані програмами мовою awk, - суміш слів і цифр, розбита на поля.
Кількість полів у записі визначається кількістю відповідних роздільників. Перше поле в записі йменується $1, друге - $2, і т.д. Весь запис іменується $0.