- •7.080403 – Програмне забезпечення автоматизованих систем
- •1 Структура файлової системи, базовий та розгорнутий перелік команд ос unix
- •1.2 Підготовка до роботи
- •1.3 Методичні вказівки до виконання роботи
- •1.3.1 Процедура віддаленої реєстрації користувача на платформі unix
- •1.3.2 Файлова система
- •1.3.3 Середовище виконання процесів
- •1.3.4 Базові команди системи
- •1.5 Завдання
- •1.7 Контрольні запитання
- •2 Редактор VI
- •1.4 Порядок виконання роботи
- •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.8.11 Змінні поля
До полів, що належать поточному запису, можна звертатися через змінні $1, $2, ..., $NF. Змінні поля мають ті ж властивості, що й всі інші змінні: вони можуть використовуватися в арифметичних і рядкових операціях, їм можуть привласнюватися значення. Так, наприклад, значення другого поля у файлі countries можна розділити на 1000, щоб перевести тисячі квадратних миль у мільйони:
{ $2 /= 1000; print }
або занести в поле новий рядок:
BEGIN { FS = OFS = "\t" }
$4 == "North America" { $4 = "NA" }
$4 == "South America" { $4 = "SA" }
{ print }
Дія BEGIN у програмі пов'язана із призначенням як роздільник вхідних полів FS і роздільника вихідних полів OFS символу табуляції. Оператор print у четвертому рядку програми виводить значення $0 після модифікації.
До полів можна звертатися й через вираження
6.3.8.12 Деякі лексичні угоди
У програмах мовою awk дозволяється використання коментарів, вони починаються із символу # і закінчуються кінцем рядка, наприклад:
print x, y # це коментар
Оператори в програмі звичайно розташовуються кожний на окремому рядку. При розташуванні декількох операторів в одному рядку, вони розділяються символом "крапка з комою". Довгий оператор може займати кілька рядків, кожний з яких у тому випадку, якщо логіка вимагає продовження, завершується символом "\". Необхідність у явному використанні символу продовження, проте, виникає рідко, оскільки, якщо рядок закінчується операторами типу && і || або комою, що випливає, рядок інтерпретується як продовження попередньої автоматично.
6.3.8.13 Вивід у файли
Вивід може бути спрямований у файли за допомогою операторів перепризначення > і >>. Як приклад розглянемо програму, що виводить із файла countries всі рядки із чисельністю населення, що перевищує 100 млн., у файл із ім'ям bigpop, а інші рядки у файл із ім'ям smallpop:
$3 > 100 { print $1, $3 >"bigpop" }
$3 <= 100 { print $1, $3 >"smallpop" }
Слід звернути увагу на те, що імена файлів мають бути укладені в лапки; у протилежному випадку bigpop і smallpop були б тільки не проініціалізованими змінними. Якби імена вихідних файлів створювалися за допомогою вираження, їх необхідно було б також взяти в круглі дужки:
$4 ~ /North America/ { print $1 > {"tmp" FILENAME) }
Причиною цього є те, що оператор > має більш високий пріоритет перед конкатенацією. У випадку відсутності круглих дужок конкатенація tmp і FILENAME не відбудеться.
6.3.8.14 Вивід у канали
Вивід можна також перепризначити у канал. Оператор
print | "командна_рядок"
визначає командний рядок перетворень вивідного потоку.
Незважаючи на те, що командний рядок і імена файлів подано у вигляді символьних рядків, взятих у лапки, замість них можуть стояти, наприклад, змінні, а також значення, що повертаються функціями.
6.4 Порядок виконання роботи
1. З середовища операційної системи викликати протокол telnet для того, щоб отримати ресурси ОС UNIX.
2. Ознайомитися з можливостями awk.
3. Навчитися виконувати програми awk з командного рядка.
4. Навчитися виконувати програми awk з файлу.
5. Розробити командний файл, що забезпечує реалізацію завдання викладача.
