Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Варіанти індивідуальних завданьСодержание книги
Поиск на нашем сайте
Хід роботи Виконуючи попередню роботові, Ви, можливо, не раз поскаржилися на відсутність в елементарних фільтрах Unix обчислювальних і логічних можливостей. Цей недолік компенсується в утиліті awk, яка, будучи однієї з утиліт, що працюють із регулярними вираженнями, у тієї ж час надає програмістові алгоритмічні й обчислювальні можливості, що базуються на синтаксисі мови C. Як ви побачите нижче, багато з тихнув попередніх завдань, для розв'язку яких нам доводилося створювати довгі конвеєрні ланцюжки команд, можуть бути вирішено одним звертанням до утиліти awk. awk може застосовуватися також і як фільтр і, сполучаючись у ланцюжку фільтрації з іншими утилітами, необмежено розширювати можливості командного керування. Хоча синтаксис внутрішньої мови awk базується на синтаксисі мови C, слід пам'ятати, що мова awk - мова обробки текстів, у цій мові існує єдиний тип даних - рядок символів, а при виконанні обчислювальних операцій відбуваються "прозорі" перетворення строкових операндов у числові й числових результатів - у строковий тип. У даній лабораторній роботі Вам пропонується розробити програми awk для розв'язку завдань обробки текстових файлів. Ви можете комбінувати виклик awk з викликами інших утиліт, алі в більшості випадків у цьому немає необхідності. У лабораторній роботі використовуються ті ж файли вихідних даних, які використовувалися в роботі 3:
Завдання 1 Виконаєте за допомогою awk ту ж обробку текстового файлу, якові Ви виконували в Завданні 1 роботи N4. Завдання 2-3 Виконаєте за допомогою awk обробку файлів../metod/query..., відповідно до Вашого варіанта індивідуального завдання. Для протоколювання роботи використовуйте команду script.
Довідка Команда awk:
Скрипт_awk являє собою програму специальном языке awk, описывающую шаблоны, по которым отбираются строки и действия над ними. Скрипт представляет собой последовательность элементов, каждый из которых имеет вид: [ шаблон ] { дія } Семантика елемента така, що якщо перебуває рядок, відповідна до даного шаблону, то над нею виконується дана дія. Якщо шаблон пропущений, то дія виконується над усіма рядками файлу. Опис шаблонів ґрунтується на базовых регулярных выражениях (РВ), опис дій - на синтаксисі мови програмування C. При роботі awk читає файл послідовно, рядок за рядком і над рядками, що задовольняють заданим у скрипте шаблонам, виконує задані дії. Опис шаблонів Шаблон являє собою РВ, укладене в символи "/.../". У мові awk синтаксис базових РВ розширений наступними доповненнями: "()" - дужки для групування РВ; "|" - логічне "або"; "+" - плюс, що коштує за РВ, означає будь-яку послідовність входжень цього РВ, починаючи з першого; "?" - знак питання, що коштує за РВ, означає 0 або 1 входжень цього РВ. У шаблону також допускаються вираження відносини, які мають вигляд: вираження операція_приналежності вираження або вираження операція_відношення вираження Операції_приналежності бувають: "~" (належить) і "!~" (не належить). Операції відносини: "==", "!=", ">", ">=", "<", "<=" - у їхньому звичайному змісті. У лівій частині таких виражень в обох випадках звичайно застосовується ім'я поля рядка, у правій, у першому випадку - шаблон, у другому - будь-яке вираження. Допускається логічна комбінація шаблонів з використанням операцій "&&", "||", "!". Комбінація виду: шаблон1, шаблон2 означає застосування дій, що задаються з даними шаблонами, до рядка, що задовольняє шаблону1, і далі - до всіх наступних за нею рядкам, аж до появи рядка, що задовольняє шаблону2, включно. У мові awk передбачено два спеціальні шаблони - BEGIN і END. Перший описує дії, виконувані перед початком читання файлу, другий - дії, виконувані після закінчення читання.
Дії Мова опису дій awk майже ідентичний мові програмування C. Операції: + - * / % ++ -- у постфиксной і префиксной формах = += -= *= /= % = < <= > >= ==!= ! && || Оператор, остання операція в якому є операцією присвоювання, є оператором присвоювання. Оператори, що управляють потоком обчислення: if (умова) оператор [else оператор ]
while (умова) оператор
for (вираження; умова; вираження) оператор на відміну від мови C, у вираженнях циклу for не допускається перерахування через кому
break
continue
next негайний перехід до наступного рядка файлу
exit вихід із програми Оператори виводу:
Оператор завершується символом ";" або перекладом рядка. Якщо оператор буде продовжений на наступному рядку, перший рядок повинна завершуватися символом "\" Будь-яка послідовність операторів, укладена у фігурні дужки "{... }" є складеним оператором. Коментар має той же вид, що й у мові C: "/*... */", на відміну від З, коментарі можна вставляти тільки між операторами, але не в середину оператора. Функції:
Мова програмування awk допускає використання:
Посилання на поля оброблюваного рядка можливі по іменам: $1, $2, $3... Ім'я $0 - посилання на весь рядок. У мові awk визначені наступні стандартні змінні:
Користувацькі змінні не вимагають оголошення, вони автоматично оголошуються тільки вони з'являться в програмі. Змінні можуть інтерпретуватися як числові або строкові, інтерпретація виконується залежно від контексту використання змінної. Масиви також не оголошуються, а ухвалюють значення з контексту. Масиви в скрипте awk є динамічними, тобто, нові елементи додаються в масив у міру необхідності. Індексом у масиві може бути як числове, так і строкове значення.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2020-12-09; просмотров: 78; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.216.161.178 (0.011 с.) |