DevioLab CRYPTO TRADING AUTOMATION
LIVE
AUTOMATED CRYPTO TRADING • BINANCE
Автоматизуйте свій криптопортфель
Торгові боти DevioLab аналізують крипторинок, автоматично відкривають і закривають позиції та керують вашим портфелем на Binance 24/7.
CRYPTO 80 Bots
BINANCE Spot Trading
TRADING 24 / 7
Спробувати DevioLab
deviolab.com

Потоковий редактор sed, утилiта обробки даних awk

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Інститут комп’ютерних технологій, автоматики та метрології
Факультет:
Інформаційна безпека
Кафедра:
Кафедра захисту інформації

Інформація про роботу

Рік:
2015
Тип роботи:
Лабораторна робота
Предмет:
Інші
Група:
ІБ-44
Варіант:
7

Частина тексту файла (без зображень, графіків і формул):

Міністерство освіти і науки України Національний університет Львівська політехніка  Звіт до лабораторної роботи № 3 на тему: “ Потоковий редактор sed, утилiта обробки даних awk ” Виконав студент групи ІБ — 44 Перевірив Львів — 2010 Мета роботи познайомитися з призначенням та командами потокового текстового редактора sed; познайомитися з призначенням утилiти awk та мовою обробки шаблонiв утилiти awk; навчитися редагувати текстовi файли з допомогою потокового редактора sed та використовувати утилiту sed як фiльтр редагування файлiв; навчитися записувати шаблони утилiти awk та використовувати утилiту awk як фiльтр обробки даних. 1. Потоковий редактор SED. sed: неінтерактивний редактор текстових файлів awk: мова обробки шаблонів з C-подібним синтаксисом При всіх своїх відмінностях, ці дві утиліти володіють схожим синтаксисом, вони обидві вміють працювати з регулярними виразами, обидві, по-замовчуванню, читають дані з пристрою stdin і обидві виводять результат обробки на пристрій stdout. Обидві є утилітами UNIX-систем, і чудово можуть взаємодіяти між собою. Висновок від однієї може бути перенаправлений, по конвеєру, на вхід іншої. Їх комбінування надає сценаріями, на мові командного оболонки, міць і гнучкість мови Perl. Одна важлива відмінність полягає в тому, що у випадку з sed, сценарій легко може передавати додаткові аргументи цієї утиліті, в той час, як у випадку з awk (див. Приклад 33-3 і Приклад 9-22), це більш складне завдання. B.1. Sed Sed - це неінтерактивний рядковий редактор. Він приймає текст або з пристрою stdin, або з текстового файлу, виконує деякі операції над рядками і потім виводить результат на stdout пристрій або у файл. Як правило, в сценаріях, sed використовується у конвеєрній обробці даних, спільно з іншими командами і утилітами. Sed визначає, по заданому адресного простору, над якими рядками слід виконати операції. [1] Адресне простір рядків задається або їх порядковими номерами, або шаблоном. Наприклад, команда 3d змусить sed видалити третій рядок, а команда / windows / d означає, що всі рядки, що містять "windows", повинні бути видалені. З усього розмаїття операцій, ми зупинимося на трьох, що використовуються найбільш часто. Це p - друк (на stdout), d - видалення і s - заміна. Таблиця B-1. Основні операції sedОперація Назва Опис [Діапазон рядків] / p print Друк [зазначеного діапазону рядків] [Діапазон рядків] / d delete Видалити [вказаний діапазон рядків] s/pattern1/pattern2 / substitute Замінити першого зустріли відповідність шаблону pattern1, у рядку, на pattern2 [Діапазон рядків] / s/pattern1/pattern2 / substitute Замінити першого зустріли відповідність шаблону pattern1, на pattern2, у вказаному діапазоні рядків [Діапазон рядків] / y/pattern1/pattern2 / transform замінити будь-які символи з шаблону pattern1 на відповідні символи з pattern2, у вказаному діапазоні рядків (еквівалент команди tr) g global Операція виконується над усіма знайденими відповідностями всередині кожної з заданих рядків Без оператора g (global), операція заміни буде вироблятися тільки для першого знайденого збіги, із заданим шаблоном, у кожному рядку. В окремих випадках, операції sed необхідно брати в лапки. sed-e'/^$/ d '$ filename # Ключ-e говорить про те, що далі слідує рядок, яка повинна інтерпретуватися # + Як набір інструкцій редагування. # (При передачі однієї інструкції, ключ "-e" є необов'язковим.) # "Суворі" лапки ('') запобігають інтерпретацію символів регулярного виразу, # + Як спеціальних символів, командним інтерпретатором. # # Дії виробляються над рядками, які містяться у файлі $ filename. В окремих випадках, команди редагування не працюють в одиночних лапках. filename = file1.txt pattern = BEGIN sed "/ ^ $ pattern / d" "$ filename" # Результат цілком передбачуваний. # Sed '/ ^ $ pattern / d' "$ filename" дає інший результат. # В даному випадку, в "суворих" лапках ('...'), # + Не відбувається підстановки значення змінної "$ pattern". Sed використовує ключ-e для того, щоб визначити, що наступна рядок є інструкцією, або набором інструкцій, редагування. Якщо інструкція є єдиною, то використання цього ключа не є обов'язковим. sed-n '/ xzy / p' $ filename # Ключ-n змушує sed вивести тільки ті рядки, які збігаються з зазначеним шаблоном. # В іншому випадку (без ключа-n), будуть виведені всі рядки. # Тут, ключ-e не є обов'язковим, оскільки тут стоїть єдина команда. Таблиця B-2. Приклади операцій у sedОперація Опис 8d Видалити 8-й рядок. / ^ $ / D Видалити всі порожні рядки. 1 ,/^$/ d Видалити всі рядки до першої порожнього рядка, включно. / Jones / p Вивести рядки, що містять "Jones" (з ключем-n). s / Windows / Linux / У кожному рядку, замінити першим зустрітися слово "Windows" на слово "Linux". s / BSOD / stability / g У кожному рядку, замінити всі зустрілися слова "BSOD" на "stability". s / * $ / / Видалити всі пробіли в кінці кожного рядка. s/00 * / 0 / g Замінити всі послідовності провідних нулів одним символом "0". / GUI / d Видалити всі рядки, що містять "GUI". s / GUI / / g Видалити всі знайдені "GUI", залишаючи решту рядки без змін. Заміна рядка порожній рядком, еквівалентна видалення частини рядка, що збігається з шаблоном. Інша частина рядка залишається без змін. Наприклад, s / GUI / /, змінить наступний рядок The most important parts of any application are its GUI and sound effects на The most important parts of any application are its and sound effects Символ зворотного слеша представляє символ переведення рядка, як символ заміни. У цьому випадку, заміщає вираз продовжується на наступному рядку. s / ^ * / \ / G Ця інструкція замінить початкові пробіли в рядку на символ переведення рядка. Очікуваний результат - заміна відступів на початку параграфа порожніми рядками. Вказівка діапазону рядків, що передує однієї, або більше, інструкції може зажадати укладання інструкцій у фігурні дужки, з відповідними символами переведення рядка. / [0-9A-Za-z ]/,/^$/{ / ^ $ / D ) У цьому випадку будуть видалені тільки перші з кількох, що йдуть підряд, порожніх рядків. Це може використовуватися для встановлення однорядкових інтервалів у файлі, залишаючи, при цьому, порожні рядки між параграфами. 2. Команда AWK Awk - це повноцінна мова обробки текстової інформації з синтаксисом, що нагадує синтаксис мови C. Він володіє досить широким набором можливостей, проте, ми розглянемо лише деякі з них - найбільш вживані в сценаріях командної оболонки. Awk "розбиває" кожен рядок на окремі поля. По-замовчуванню, поля - це послідовності символів, відокремлені один від одного пробілами, однак є можливість призначення інших символів, як роздільник полів. Awk аналізує і обробляє кожне поле в окремо. Це робить його ідеальним інструментом для роботи зі структурованими текстовими файлами, осбенно з таблицями. Всередині сценаріїв командної оболонки, код awk, полягає в "строгі" (одиночні) лапки і фігурні дужки. awk '(print $ 3)' $ filename # Виводить вміст третього поля з файлу $ filename на пристрій stdout. awk '(print $ 1 $ 5 $ 6)' $ filename # Виводить вміст 1-го, 5-го і 6-го полів з файлу $ filename. Тільки що, ми розглянули дію команди print. Ще, на чому ми зупинимося - це змінні. Awk працює зі змінними подібного сценарію командної оболонки, але більш гнучко. (Total + = $ (column_number)) Ця команда додасть вміст змінної column_number до змінної "total". Щоб, на завершення вивести "total", можна використовувати команду END, яка відкриває блок коду, що відпрацьовують після того, як буде опрацьовано всі вхідні дані. END (print total) Команді END, відповідає команда BEGIN, яка відкриває блок коду, що відпрацьовує перед початком обробки вхідних даних. Висновок: в даній лабораторній роботі я ознайомився з командами для редагування потокового тексту AWK та SED. Також вивчив основні команди та методи використання цих команд для редагування, пошуку та заміни тексту в текстових файлах.
Антиботан аватар за замовчуванням

2015

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!