Wstęp do informatyki 2011/2012. Wyrażenia regularne (sed)



Podobne dokumenty
Wyrażenia regularne. Wyrażenia regularne 1/41

Przetwarzanie tekstu 2. Operacje na plikach tekstowych w systemie Linux

SED - Stream EDitor. edytor strumieniowy. Bogumił Konopka W-11/I-21 Politechnika Wrocławska

Przedstawię teraz tzw. podstawowe symbole wyrażenia regularne (BRE, Basic Regular Expression)

JĘZYK SHELL JEST PEŁNYM JĘZYKIEM PROGRAMOWANIA

Języki formalne i automaty Ćwiczenia 6

Bash - wprowadzenie. Bash - wprowadzenie 1/39

Systemy operacyjne 12

Wstęp do informatyki. stęp do informatyki Polecenia (cz.2)

Skanowanie OCR w aplikacji Kancelaria Komornika. Instrukcja dla użytkownika

Różne pożyteczne polecenia oraz wyrażenia regularne. Kurs systemu Unix 1

Edytor strumieniowy sed

Temat zajęć: Filtry, strumienie standardowe oraz przetwarzanie potokowe. stderr

Administracja sieciowymi systemami operacyjnymi III Klasa - Linux

Zakład Systemów Rozproszonych

Wstęp do Informatyki dla bioinformatyków

Znaki globalne w Linuxie

Skrypty powłoki w systemie Linux

Środowisko programisty Zestaw 5

J ezyk AWK Kurs systemu UNIX

Powłoka bash. Kurs systemu Unix 1

Przekierowanie wejścia wyjścia:

System operacyjny Linux

System operacyjny UNIX Ćwiczenie 1. Podstawowe polecenia systemu Unix

PODSTAWY INFORMATYKI

Linux: System Plików

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

Sieci i systemy operacyjne I Ćwiczenie 1. Podstawowe polecenia systemu Unix

System operacyjny Linux wybrane zagadnienia. Magda Mielczarek Katedra Genetyki Uniwersytet Przyrodniczy we Wrocławiu

BASH - LINIA POLECEŃ. Bioinformatyka 2018/2019

Wstęp do systemów wielozadaniowych laboratorium 19 awk

PRACOWNIA INFORMATYCZNA BASH - PODSTAWOWE INFORMACJE

Kurs systemu Unix wykład wstępny. Kurs systemu Unix 1

OPCJE -A num, --after-context=num Wypisuje po pasujących liniach num linii następującego kontekstu.

1. Znajdź za pomocą programu locate wszystkie pliki które zawierają w nazwie słowo netscape locate netscape

PRACOWNIA INFORMATYCZNA CHARAKTERYSTYKA PRZEDMIOTU BASH - PODSTAWOWE INFORMACJE

Wykład II. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

Skrypty powłoki Skrypty Najcz ciej u ywane polecenia w skryptach:

Wyrażenia regularne. Wojciech Tabiś Łukasz Jankowski

1. Wyrażenia regularne. Symbole w wyrażeniach regularnych 1 :

L E X. Generator analizatorów leksykalnych

Matematyczne Podstawy Informatyki

Edytor tekstu MS Word 2010 PL. Edytor tekstu MS Word 2010 PL umożliwia wykonywanie działań matematycznych.

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

Programowanie w języku Python. Grażyna Koba

Architektura systemów informatycznych. Powłoka systemowa Architektura procesora

ABC poczty elektronicznej

Wyrażenia regularne. Regular expressions. aka. Regexp

$ awk f plik_z_programem plik_wejsciowy1 plik_wejsciowy2...

Systemy operacyjne. Laboratorium 9. Perl wyrażenia regularne. Jarosław Rudy Politechnika Wrocławska 28 lutego 2017

2.6 Edytor sed (Stream Editor)

Podstawy użytkowania Linux a

System operacyjny Linux

Pracownia Komputerowa wyk ad II

Python jest interpreterem poleceń. Mamy dwie możliwości wydawania owych poleceń:

W pierwszej kolumnie wyświetlany jest identyfikator procesu (pid)

BASH - WPROWADZENIE Bioinformatyka 4

Wstęp do systemu Linux

Środowisko programisty Zestaw 4

Kurs ZDAJ MATURĘ Z MATEMATYKI MODUŁ 6 Teoria funkcje cz. 2

System operacyjny UNIX system plików. mgr Michał Popławski, WFAiIS

Niektóre katalogi są standardowymi katalogami zarezerwowanymi do użytku przez system. Znaczenie wybranych katalogów systemowych jest następujące:

Instrukcja SO powłoka BASH i skrypty powłoki Istotne jest zrozumienie działania narzędzia history powłoki BASH. Każde polecenie wprowadzone i

Wstęp do programowania. Wykład 1

1 Przygotował: mgr inż. Maciej Lasota

Słowem wstępu. Część rodziny języków XSL. Standard: W3C XSLT razem XPath 1.0 XSLT Trwają prace nad XSLT 3.0

Pracownia Informatyczna I ORGANIZACJA ZAJĘĆ, ZASADY ZALICZENIA

Podstawy Programowania.

SAPUS-MMI-038-Zamiana pozycji kontraktu

3.2. RÓWNANIA I NIERÓWNOŚCI LINIOWE.

Środowisko programisty Zestaw 7

1. Podstawy budowania wyra e regularnych (Regex)

Podstawy programowania w języku C++

Ćwiczenia Linux konsola

Pracownia Informatyczna Instytut Technologii Mechanicznej Wydział Inżynierii Mechanicznej i Mechatroniki. Podstawy Informatyki i algorytmizacji

Informatyka 1. Przetwarzanie tekstów

Informatyka Edytor tekstów Word 2010 dla WINDOWS cz.1

Umożliwia ona pokazanie ukrytych plików i katalogów, nazwa ich zaczyna się od kropki.

Komentarze w PHP (niewykonywane fragmenty tekstowe, będące informacją dla programisty)

Operatory zmiany sposobu przypisania standardowych strumieni >,<,>> Jeżeli pierwsze polecenie powiodło się to wykona drugie

Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek].

Prawa dostępu do plików (1)

SYSTEMY OPERACYJNE I laboratorium 3 (Informatyka stacjonarne 2 rok, semestr zimowy)

Wstęp do systemu Linux

- wszystkie elementy - wszystkie elementy

Podstawy Kompilatorów

Wyrażenie wewnątrz nawiasów jest atomem (rozpatrujemy je jako całość).

Powłoka I. Popularne implementacje. W stylu sh (powłoki zdefiniowanej w POSIX) W stylu csh. bash (najpopularniejsza) zsh ksh mksh.

Linux Polecenia. Problem nadpisywania plików. Zmienna noclobber i noglob. Filtry i metaznaki. Problem nadpisywania plików. Opracował: Andrzej Nowak

Zastosowanie filtrów w Linuksie

Spra r wd w za z nie e popra r wn w ości c danych c w w form r u m larz r a z ch c :

Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 2. Karol Tarnowski A-1 p.

Tworzenie nowych pytań materiał dla osób prowadzących kursy

1. Wypisywanie danych

KaŜdy z formularzy naleŝy podpiąć do usługi. Nazwa usługi moŝe pokrywać się z nazwą formularza, nie jest to jednak konieczne.

Informacja o języku. Osadzanie skryptów. Instrukcje, komentarze, zmienne, typy, stałe. Operatory. Struktury kontrolne. Tablice.

pico mojskrypt bash mojskrypt chmod +x mojskrypt./mojskrypt

skrypt powłoki to plik tekstowy, rozpoczynający się sekwencją: pierwsza linia określa powłokę, w której wykonywany jest skrypt; druga to komentarz

lekcja 8a Gry komputerowe MasterMind

1. Wprowadzenie do C/C++

Transkrypt:

Wstęp do informatyki 2011/2012 Wyrażenia regularne (sed)

Sed sed [OPCJE] polecenia [plik_wejściowy]... sed [OPCJE] -f skrypt_z_poleceniami_seda [plik_wejściowy]... Edytor strumieniowy stosowany do przetwarzania plików tekstowych. Przykłady: http://sed.sourceforge.net/sed1line.txt

Sed podstawianie s/wyrażenie_regularne/tekst/znacznik Zastępuje pasujące fragmenty tekstem. Często stosowana instrukcja seda. Prosty przykład: > sed s/ala/ola/ plik.txt

Sed - podstawianie s/wyrażenie_regularne/tekst/znacznik Wyrażenia regularne RE (patrz: info sed): znak pasuje do siebie * - pasuje do ciągu o długości zero lub więcej wyrażeń regularnych stojących przed tym symbolem, np.: ab* pasuje do napisów postaci: a, ab, abb, abbb...

Sed - podstawianie. - pasuje do każdego znaku (w tym znaku nowej linii) ^ - RE po ^ pasuje tylko na początku linii $ - RE przed $ pasuje tylko na końcu linii Np.: ^abc$ - pasuje tylko do linii, w których jest wyłącznie abc

Sed - podstawianie [LISTA] pasuje do znaku z listy, można używać przedziałów, np. A-Z, 0-9. [^LISTA] j/w, ale pasuje do znaku poza listą Np.: [abd] pasuje do znaku a, b lub d [A-Za-z] pasuje do litery [^0-4] pasuje do znaku różnego od 0,1,2,3,4

Sed - podstawianie RE1RE2 łączenie wzorców: RE1 z RE2 RE1\ RE2 pasuje do RE1 lub RE2 Przykład: a[a-z] pasuje do aa, ab,... Ala\ Ewa pasuje do Ala lub Ewa

Sed - podstawianie \{N\} N wystąpień RE, np.: a\{3\} pasuje tylko do aaa \{N,M\} od N do M wystąpień RE \{N,\} od N wystąpień RE

Sed - podstawianie \n znak nowej linii \CHAR znaki specjalne \* \$ \. \[ \\ \^ Przykład: \[.*] - pasuje do napisów w nawiasach kwadratowych

Sed - podstawianie \(RE\) - grupuje wyrażenie regularne, można później odwołać się do niego w sekcji tekst, przez \1, \2... \9, tj. kolejny numer grupowania Np.: \(abc\)1234\([a-z]\) - wzorzec pasuje do tekstów np, abc1234a, abc1234b,... Pierwsze trzy litery to grupa 1, ostatnia litera to grupa 2.

Sed - podstawianie s/wyrażenie_regularne/tekst/znacznik W sekcji tekst można m.in. używać: & - oznacza dopasowany do wzorca RE napis \1, \2,..., \9 numer grupy z RE (patrz poprzedni slajd) Przykład: sed s/\(abc\)1234\([a-z]\)/\1\2/ Tutaj RE: \(abc\)1234\([a-z]\) a tekst to: \1\2

Sed - podstawianie s/wyrażenie_regularne/tekst/znacznik Znamy już RE. Teraz znaczniki: pusty - zastąp tylko pierwsze wystąpienie wzorca w linii g zastąp wszystkie n zastąp n-te wystąpienie wnazwa zapisz po zastąpieniu do pliku NAZWA

Sed Ważna uwaga dot. dopasowywania. W przypadku zawierających się fragmentów tekstu pasujących do wzorca RE, sed wybierze najdłuższy. s/aa*/dopasowany:&:/g XXaaaXX XXDOPASOWANY:aaa:XX Pasujące tutaj: a, aa, aaa

Sed - podstawianie A teraz kilka przykładów. > sed 's/[yy]aer/year/g' > sed 's/\(.*\).mp3/\1/g' > sed 's/^function/procedure/' > sed 's/^$/pusta/' Czy to usunie dobrze nawiasy kwadratowe? > sed 's/\[\(.*\)]/\1/'

Sed Pamiętajmy, że pomiędzy literami występują puste ciągi pasujące do wzorców z *. Np. XX można czytać jako X X, gdzie oznacza pusty napis. Wtedy podstawienie: s/a*/podst:&:/g dla XX znajdzie 3 puste pasujące ciągi: XX PODST::XPODST::XPODST::

Sed s/a*/podst:&:/g Pamiętajmy też o zasadzie najdłuższego pasującego tekstu: ax PODST:a:XPODST:: aa PODST:aa: XaaXa PODST::XPODST:aa:XPODST:a:

Sed - podstawianie Powielanie: > sed 's/pawel\ Piotr/&&/g' Łączenie sedowych instrukcji: > sed 's/aa/&&/g; s/bb//g' lub > sed -e '...' -e '...'

Sed - kontynuacja Warto zapamiętać opcję -n sed powstrzymuje automatyczne wypisywanie przetwarzanych linii, oraz znacznik p, który powoduje wypisanie dopasowanych linii: > ls sed -n 's/txt/text/gp'

Sed podstawianie kont. s/wyrażenie_regularne/tekst/znacznik Zastępuje pasujące fragmenty tekstem. Często stosowana instrukcja seda. Prosty przykład: > sed s/ala/ola/ plik.txt

Sed kont. Podstawianie dla orłów: [Adres1[,Adres2]]s/RE/tekst/znacznik Adres1/2 może być: - wyrażeniem regularnym w ukośnikach: /RE/ - numerem linii lub $ oznaczającym ostatnią linię Gdy podano dwa adresy podstawianie dotyczy linii pomiędzy liniami pasującymi do wzorców łącznie z tymi liniami. Tego typu adresowanie można stosować we wszystkich poleceniach seda.

Sed kont. [Adres1[,Adres2]]s/RE/tekst/znacznik Pytanie. Co gdy dopasowano Adres1, a nie znaleziono Adres2?

Sed kont. > sed /abc/,/def/s/.*//g # to można lepiej niebawem > sed '2,$s/Procedure/Function/g' > sed '/[A-Z]/s/Ala/Ola/g'

Sed usunięcie [Adres1[,Adres2]] d [Adres1[,Adres2]]!d Usuwa linie wg znaczników.

Sed kont. > sed /abc/,/def/d > sed '2,$d' > sed 10d > sed $d

Sed inne polecenia [Adres1[,Adres2]]i TEKST [Adres1[,Adres2]]a TEKST [Adres1[,Adres2]]c TEKST Dołączanie przed (i) i za bieżącą linią (a) oraz zastępowanie (c) linii. > sed '3,$i ABC' > sed '2c Nowa druga linia'

Sed podprogramy [Adres1[,Adres2]]{... } Grupowanie poleceń. > sed '3,${ s/x/y/g s/a/b/g }'

Sed Lepiej napisać skrypt: > cat skrypt.sed s/pawel\ Piotr/&&/g s/aa//g s/nowak/nowakowski/ #A KU KU - to KomentarZ > sed -f skrypt.sed uczestnicy.txt

Sed A najlepiej skrypt wykonywalny: > cat skrypt.sed #!/usr/bin/sed -f s/pawel\ Piotr/&&/g s/aa//g s/nowak/nowakowski/ > ls -l skrypt.sed -rwx--------... skrypt.sed >./skrypt.sed uczestnicy.txt

Brzydkie przykłady, czyli czego unikać Nie rozumiem przedziałów: > sed 's/[100-999]/to nie 3-cyfrowa liczba/g' Nie znam operatora iteracji: > sed 's/[0-9][0-9][0-9][0-9][0-9]/okropne/g' Niepotrzebne przetwarzanie całej linii. Także, jak pokazać nieznajomość adresowania (i nie tylko): > sed 's/^ziutek:.*:.*:.*:.*:.*:\([0-9]\)$/\1/' Nie znam d i nie rozumiem g: > sed 's/^.*$//g'

Dziękuję za uwagę.