
- •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.8.6 Комбінації виражень
У складене вираження поєднуються більш прості вираження, які можуть бути в круглих дужках і розділятися логічними операторами || (або), && (і) і ! (немає). Припустимо, наприклад, що потрібно вибрати всі країни Азії із чисельністю населення, що перевищує 500 млн. чоловік. Програма
$4 == "Asia" && $3 > 500
вирішує це завдання шляхом виводу всіх рядків, четверте поле в яких має значення "Asia", а значення третього поля перевищує 500. Наступні приклади програм демонструють можливості застосування логічних операторів у програмах:
$4 == "Asia" || $4 == "Africa"
або
S4 ~ /^(Asia|Africa)$/
6.3.8.6 Діапазони виражень
Діапазон виражень подається у вигляді двох виражень, розділених комі:
pat1, pat2 { ... }
У цьому випадку дія виконується для всіх рядків, розташованих між настанням події pat1 і до наступного настання події pat2 (включно). Наприклад, вираження
/Canada/, /Brazil/
означає вибірку рядків, починаючи з першого рядка, що містить підрядок "Canada", і закінчуючи наступним виявленням підрядка "Brazil":
6.3.8.8 Дії
В операторі "вираження-дія" дія позначає операцію, виконувану над рядками, обраними відповідно до вираження. Найчастіше використовуваними діями є вивід і присвоювання, але дія може являти собою й комбінацію з операторів.
6.3.8.9 Вбудовані змінні
Список підтримуваних в awk убудованих змінних утримується в таблиці 6.3. Деякі змінні вже використовувалися, з іншими познайомимося.
Таблиця 6.3 – Вбудовані змінні мови awk
Змінна |
Значення |
Замовчування |
ARGC ARGV FILENAME FNR FS NF NR OFMT OFS ORS RS RSTART
RLENGTH
SUBSEP |
кількість аргументів у командному рядку масив аргументів командного ім'я поточного вхідного файла номер запису в поточному роздільник вхідних кількість полів у поточному кількість прочитаних формат висновку для роздільник полів на роздільник записів на роздільник записів на індекс першого символу, ототожненого функцією match довжина рядка, ототожненого функцією match роздільник |
- - - - пробіл&tab - - %.6g пробіл новий рядок новий рядок
-
- "\034" |
6.3.8.10 Арифметичні дії
Дії можуть містити в собі звичайні арифметичні вираження, призначені для обчислення числових значень. Припустимо, наприклад, що потрібно обчислити щільність населення для кожної із країн, описаних у файлі countries. Оскільки площа країни в тисячах квадратних миль зберігається у другому полі, а чисельність населення в млн. чоловік у третьому, щільність населення (людина на кв. милю) можна виразити формулою 1000*$3/$2. Програма
{ print "%10s %6.1f\n", $1, 1000 * $3 / $2 }
виводить ім'я кожної країни й щільність її населення. Результат виглядає в такий спосіб:
USSR 30.3
……......
Algeria 19.6
Арифметичні дії виконуються над числами із плаваючою крапкою. До арифметичних операторів ставляться +, -, *, /, % (одержання залишку) і ^ (зведення в ступінь; синонім: **). Сукупність констант, змінних, ідентифікаторів полів, елементів масивів, функцій і інших об'єктів, пов'язаних між собою цими операторами, становить арифметичне вираження. В awk допускається й експонентний запис значень: 1e6 = 1E6 = 10e5 = 1000000.
Найпростіша форма оператора присвоювання:
v = e,
де v – ідентифікатор змінної або поля, e – вираження.
awk підтримує вбудовані арифметичні функції, що наведені у таблиці 6.4.
Таблиця 6.4 – Вбудовані арифметичні функції мови awk
Функція |
Повертається значення |
atan2(y,x) cos(x) exp(x) int(x) log(x) rand() sin(x) sqrt(x) srand(x) |
арктангенс дробу y/x у діапазоні від -пі до пі косинус x, де x у радіанах експонентна функція від x ціла частина від x натуральний логарифм від x випадкове число в діапазоні від 0 до 1 синус x, де x у радіанах квадратний корінь із x x - новий аргумент для rand() |