Потоковий редактор SED. Утиліта обробки даних AWK

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

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

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

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

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

Міністерство освіти і науки України Національний університет «ЛЬВІВСЬКА ПОЛІТЕХНІКА»  Лабораторна робота №3 Потоковий редактор SED. Утиліта обробки даних AWK Мета роботи: познайомитися з призначенням та командами потокового текстового редактора sed; познайомитися з призначенням утилiти awk та мовою обробки шаблонiв утилiти awk; навчитися редагувати текстовi файли з допомогою потокового редактора sed та використовувати утилiту sed як фiльтр редагування файлiв; навчитися записувати шаблони утилiти awk та використовувати утилiту awk як фiльтр обробки даних. Короткі теоретичні відомості sed - неiнтерактивний текстовий редактор, призначений для пакетного редагування файлiв. Вiн особливо зручний для виконнання однiєї ж i тiєї функцiї редагування багато раз, а також для редагування файлiв, якщо послiдовнiсть команд редагування надто довга та складна для iнтерактивного редагування. sed отримує вхідний потік (переважно файл) порядково, редагує кожен рядок відповідно до правил, які визначені в sed-скрипті з використанням простої мови sed, і потім виводить результат в вихідний потік. Набір команд sed створений по образу редактора ed, але необхідно пам’ятати про його інвертованість. Наприклад, команда 25d редактора ed означає «йдіть до рядка 25 і видаліть його», в то час як ця ж команда sed означає «якщо це рядок з номером 25, то видаліть (не виводьте) його». Відоме виключення — це команди копіювання і переміщення, які обхоплюють діапазон рядків і таким чином не мають прямих еквівалентів в sed. Замість цього sed вводить додатковий буфер, який називається «простором захвату», і додаткові команди для управління ним. Утилiта awk - один з найпотужнiших iнструментiв для контекстного пошуку та перетворення текстiв. Завдяки гнучкiй мовi програмування awk можна створювати короткi програми, якi читають вхiднi файли, сортують данi, опрацьовують їх, виконують математичнi дiї, генерують звiти тощо. Завдання: Використовуючи login i password, зареєструватися в операцiйнiй системi Linux. Використовуючи команду man sed, познайомитися з двома форматами виклику sed, опцiями редактора, з адресацiєю рядкiв редагованого тексту, iз правилами запису регулярних виразiв, з командами текстового редактора sed. Потренуватися у використаннi sed для редагуваннi тексту. Команди редагування записати в окремий файл. Серед команд повиннi бути всi основнi команди редагування та повиннi використовуватися регулярнi вирази. Потренуватися у використаннi sed як фiльтра Використовуючи команду man awk, познайомитися з форматами виклику awk мовою програмування AWK: структурою AWK-програми змiнними поля AWK-змiнними та виразами шаблонами регулярними виразами дiєю виводу дiєю присвоювання вбудованими функцiями керуючими структурами Потренуватися у використаннi awk для опрацювання тексту, використовуючи рiзно манiнтнi елементи мови AWK, з якими ознайомилися у попередньому пунктi Потренуватися у використаннi awk як фiльтра Результат виконання завдання: SED(1) User Commands SED(1) NAME sed - stream editor for filtering and transforming text SYNOPSIS sed [OPTION]... {script-only-if-no-other-script} [input-file]... DESCRIPTION Sed is a stream editor. A stream editor is used to perform basic text transformations on an input stream (a file or input from a pipeline). While in some ways similar to an editor which permits scripted edits (such as ed), sed works by making only one pass over the input(s), and is consequently more efficient. But it is sed's ability to filter text in a pipeline which particularly distinguishes it from other types of editors. -n, --quiet, --silent suppress automatic printing of pattern space -e script, --expression=script add the script to the commands to be executed -f script-file, --file=script-file add the contents of script-file to the commands to be executed --follow-symlinks follow symlinks when processing in place -i[SUFFIX], --in-place[=SUFFIX] edit files in place (makes backup if extension supplied) -l N, --line-length=N specify the desired line-wrap length for the `l' command --posix disable all GNU extensions. -r, --regexp-extended use extended regular expressions in the script. -s, --separate consider files as separate rather than as a single continuous long stream. -u, --unbuffered load minimal amounts of data from the input files and flush the output buffers more often --help display this help and exit --version output version information and exit If no -e, --expression, -f, or --file option is given, then the first non-option argument is taken as the sed script to interpret. All remaining arguments are names of input files; if no input files are specified, then the standard input is read. Лiстинг файлу iз командами потокового редактора sed, якi використовувалися для редагування заданого файлу. 1)Команда а: [olenet@localhost ~]$ who olenet :0 2010-05-12 20:35 olenet pts/0 2010-05-12 20:38 olenet pts/1 2010-05-12 20:40 [olenet @localhost ~]$ who | sed '2a\ > nova_stroka > ' olenet :0 2010-05-12 20:35 olenet pts/0 2010-05-12 20:38 nova_stroka olenet pts/1 2010-05-12 20:40 [olenet@localhost ~]$ 2)Команда b [olenet @localhost ~]$ who olenet :0 2010-05-12 20:35 olenet pts/0 2010-05-12 20:38 olenet pts/1 2010-05-05 20:40 [olenet @localhost ~]$ who | sed '2a\ > nova_stroka > b lb > 2d > : lb 3d > ' olenet :0 2010-05-12 20:35 olenet pts/0 2010-05-12 20:38 nova_stroka 3)Команда с: [olenet@localhost ~]$ who olenet :0 2010-05-12 20:35 olenet pts/0 2010-05-12 20:38 olenet pts/1 2010-05-12 20:40 [olenet @localhost ~]$ who | sed '/pts/ c\ > Stroka_zaminu > ' olenet :0 2010-05-12 21:04 Stroka_zaminu Stroka_zaminu 4)Команда d: [olenet @localhost ~]$ who olenet :0 2010-05-12 21:04 olenet pts/0 2010-05-12 21:05 olenet pts/1 2010-05-12 21:07 [olenet @localhost ~]$ who | sed '2,3d' olenet :0 2010-05-12 21:04 5)Команда і: [olenet@localhost ~]$ who olenet :0 2010-05-12 21:04 olenet pts/0 2010-05-12 21:05 olenet pts/1 2010-05-12 21:07 [olenet @localhost ~]$ who | sed '2i\ > nova_stroka > ' olenet :0 2010-05-12 21:04 nova_stroka olenet pts/0 2010-05-12 21:05 olenet pts/1 2010-05-12 21:07 6)Команда s: [olenet@localhost ~]$ who olenet :0 2010-05-12 21:04 olenet pts/0 2010-05-12 21:05 olenet pts/1 2010-05-12 21:07 [hirurg@localhost ~]$ who | sed 's/e/E/' olEnet :0 2010-05-12 21:04 olEnet pts/0 2010-05-12 21:05 olEnet pts/1 2010-05-12 21:07 [olenet @localhost ~]$ who | sed 's/e/E/t' olEnEt :0 2010-05-12 21:04 olEnEt pts/0 2010-05-12 21:05 olEnEt pts/1 2010-05-12 21:07 7)Команда у: [olenet @localhost ~]$ who olenet :0 2010-05-12 21:04 olenet pts/0 2010-05-12 21:05 olenet pts/1 2010-05-12 21:07 [olenet @localhost ~]$ who | sed 'y/pts/PTS/' olenet :0 2010-05-12 21:04 olenet PTS/0 2010-05-12 21:05 olenet PTS/1 2010-05-12 21:07 8)Команда !cmd : [olenet@localhost ~]$ who olenet :0 2010-05-12 21:04 olenet pts/0 2010-05-12 21:05 olenet pts/1 2010-05-12 21:07 [olenet@localhost ~]$ who | sed '2!d' olenet pts/0 2010-05-12 21:05 [olenet@localhost ~]$ who | sed '1,2!d' olenet :0 2010-05-12 21:04 olenet pts/0 2010-05-12 21:05 9)Команда =: [olenet@localhost ~]$ who | sed = 1 olenet :0 2010-05-12 21:04 2 olenet pts/0 2010-05-12 21:05 3 olenet pts/1 2010-05-12 21:07 10)Команда w: [olenet@localhost ~]$ who | sed 'w file.txt' olenet :0 2010-05-12 21:04 olenet pts/0 2010-05-12 21:05 olenet pts/1 2010-05-12 21:07 [olenet@localhost ~]$ cat file.txt olenet :0 2010-05-12 21:04 olenet pts/0 2010-05-12 21:05 olenet pts/1 2010-05-12 21:07 11)Команда р: [olenet @localhost ~]$ who | sed -n 'p' olenet :0 2010-05-12 21:04 olenet pts/0 2010-05-12 21:05 olenet pts/1 2010-05-12 21:07 [olenet@localhost ~]$ who | sed -n '1p' olenet :0 2010-05-12 21:04 Лiстинги AWK-програм, якi використовувалися для обробки текстових файлiв пiд час тестування рiзних елементiв мови AWK. [olenet@localhost ~]$ cat>awk.txt Іvanov I.I 1980 50 Petrov A.V 1979 40 Sidorov S.K. 1979 40 Hvedorov I.H. 1970 60 [olenet@localhost ~]$ awk '{print}' awk.txt Іvanov I.I 1980 50 Petrov A.V 1979 40 Sidorov S.K. 1979 40 Hvedorov I.H. 1970 60 [olenet@localhost ~]$ awk '/do/{print}' awk.txt Sidorov S.K. 1979 40 Hvedorov I.H. 1970 60 [olenet@localhost ~]$ awk '/do/ {print("Привет!")}' awk.txt Привет! Привет! [olenet@localhost ~]$ awk '/do/ {print($2)}' awk.txt S.K. I.H [olenet@localhost ~]$ awk '{print($2)}' awk.txt I.I A.V S.K. I.H [olenet@localhost ~]$ awk '{a = $3 $4; print a}' awk.txt 198050 197940 197940 197060 [olenet@localhost ~]$ awk '{a = $3+$4; print a}' awk.txt 2030 2019 2019 2030 [olenet@localhost ~]$ awk '/e/ {print ($1, 2000 - $3)}' awk.txt Petrov 21 Hvedorov 30 [olenet@localhost ~]$ awk '/rov/ {print}' awk.txt Petrov A.V 1979 40 Sidorov S.K. 1979 40 Hvedorov I.H 1970 60 [olenet@localhost ~]$ awk '/50/,/60/ {print}' awk.txt Іvanov I.I 1980 50 Petrov A.V 1979 40 Sidorov S.K. 1979 40 Hvedorov I.H 1970 60 [olenet@localhost ~]$ awk '/50/,/40/ {print}' awk.txt Іvanov I.I 1980 50 Petrov A.V 1979 40 [olenet@localhost ~]$ awk '/^Iv|ov/ {print} ' awk.txt Іvanov I.I 1980 50 Petrov A.V 1979 40 Sidorov S.K. 1979 40 Hvedorov I.H 1970 60 Висновки: на даній лабораторній роботі я ознайомилася з не інтерактивним текстовим редактором SED та утилітою обробки даних AWK; ознайомилася з їхніми основними командами, та навчилася застосовувати їх на практиці під час редагування тексту.
Антиботан аватар за замовчуванням

01.01.1970 03:01-

Коментарі

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

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

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

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

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

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

Admin

26.02.2023 12:38

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