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

Podobne dokumenty
2.6 Edytor sed (Stream Editor)

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

Zakład Systemów Rozproszonych

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

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

Znaki globalne w Linuxie

Języki formalne i automaty Ćwiczenia 6

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

EDYTOR TEKSTOWY VIM WYBRANE POLECENIA. Pracownia Informatyczna 5

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

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

Przetwarzanie tekstu 2. Operacje na plikach tekstowych w systemie Linux

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

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

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

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

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

Elementy wyrażeń regularnych

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

vi - Edytor tekstu. 1. To, co każdy powinien wiedzieć o vi!!!

Operatory d - kasuj (do bufora tymczasowego) c - zmień y - zapamiętaj (yank) > - przesuń w prawo < - przesuń w lewo. Informatyka MPDI2. np.

Bash - wprowadzenie. Bash - wprowadzenie 1/39

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

System operacyjny UNIX Ćwiczenie 1. Podstawowe polecenia systemu Unix

Funkcje standardowe. Filtrowanie

Technologie Informacyjne - Linux 2

Skróty klawiaturowe w programie Microsoft Excel 2013

Podstawy programowania. Wykład: 9. Łańcuchy znaków. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

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

lekcja 8a Gry komputerowe MasterMind

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

Wyrażenia regularne. Wojciech Tabiś Łukasz Jankowski

Środowisko programisty

Linux Filtr grep. Opracował: Arkadiusz Curulak WSIiE TWP w Olsztynie

Prawa dostępu do plików (1)

Przekierowanie wejścia wyjścia:

Edytor strumieniowy sed

J ezyk AWK Kurs systemu UNIX

Python wprowadzenie. Warszawa, 24 marca PROGRAMOWANIE I SZKOLENIA

Skróty klawiaturowe w systemie Windows 10

CitiDirect System bankowości internetowej dla firm

Programowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni. Wykład 6. Karol Tarnowski A-1 p.

Informatyka Arkusz kalkulacyjny Excel 2010 dla WINDOWS cz. 1

Chemiateoretyczna. Monika Musiał. Ćwiczenia

Klawisze szybkiego wyboru układu drabinkowego

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 12. Karol Tarnowski A-1 p.

POPULARNE POLECENIA SKRYPTY. Pracownia Informatyczna 2

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

Automatyzowanie zadan przy uz yciu makr języka Visual Basic

tworzenie katalogów Aby utworzyć nowy katalog wpisz: mkdir katalog1 Ta komenda utworzy katalog o nazwie katalog1.

Tematy lekcji informatyki klasa 4a luty/marzec 2013

Informatyka Arkusz kalkulacyjny Excel 2010 dla WINDOWS cz. 1

Systemy operacyjne 12

Podstawy użytkowania Linux a

CitiDirect Online Banking Przelew Zbiorczy

Podstawy Programowania Podstawowa składnia języka C++

Laboratorium 6: Ciągi znaków. mgr inż. Leszek Ciopiński dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski

Wyrażenia regularne. Wyrażenia regularne: składnia

Nazwa implementacji: Nauka języka Python pętla for. Autor: Piotr Fiorek

Zajęcia nr 1 Podstawy programowania. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

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

UMOWY INSTRUKCJA STANOWISKOWA

Musesort. Przeczytaj szczegóły pliku. Wyświetla okno ze szczegółami pobranymi z internetu wybranego pliku audio lub video

Podstawy Programowania.

Przygotowanie własnej procedury... 3 Instrukcja msgbox wyświetlanie informacji w oknie... 6 Sposoby uruchamiania makra... 8

Inicjacja tablicy jednowymiarowej

SQL, LIKE, IN, CASE, EXISTS. Marcin Orchel

Co to jest arkusz kalkulacyjny?

Linux: System Plików

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

PRACOWNIA INFORMATYCZNA BASH - PODSTAWOWE INFORMACJE

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

OBIEKTY TECHNICZNE OBIEKTY TECHNICZNE

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 :

Trochę o plikach wsadowych (Windows)

Podstawy Programowania

Podręcznik użytkownika programu. Ceremonia 3.1

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

Projekty zaliczeniowe Podstawy Programowania 2012/2013

Środowisko programisty Zestaw 5

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

Make jest programem komputerowym automatyzującym proces kompilacji programów, na które składa się wiele zależnych od siebie plików.

1 Przygotował: mgr inż. Maciej Lasota

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

Nawigacja po długim dokumencie może być męcząca, dlatego warto poznać następujące skróty klawiszowe

Kancelaria rozpoczęcie pracy z programem

Edytor materiału nauczania

WordPad Materiały szkoleniowe

Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane

Windows XP Wiersz polecenia

Wyrażenia regularne. Regular expressions. aka. Regexp

Krótki kurs obsługi środowiska programistycznego Turbo Pascal z 12 Opracował Jan T. Biernat. Wstęp

KRYTERIA OCENIANIA Z ZAJĘĆ KOMPUTEROWYCH W KLASIE IV

Ćwiczenia Linux konsola

EsAC. Essener Assoziativ Code. Ewa Dahlig-Turek Instytut Sztuki Polskiej Akademii Nauk

BASH - LINIA POLECEŃ. Bioinformatyka 2018/2019

Wstęp do programowania. Wykład 1

Instrukcja redaktora strony

Edytor tekstu Microsoft Office 2007 przewodnik dla gimnazjalisty Autor: Dariusz Kwieciński nauczyciel ZPO w Sieciechowie

Wstęp do systemu Linux

Transkrypt:

Sed edytor strumieniowy,sed wczytuje bieżący wiersz pliku do wewnętrznego bufora celem manipulowania tekstem. Wynik jest wysyłany na standardowe wyjście. Oryginalny plik nie jest nigdy zmieniany. Jeżeli chcemy zapisać wyjście w pliku, należy przekierować standardowe wyjście na plik. Składnia: sed -opcje number,/regexp/action plik.txt Wyrażenia regularne: Przedstawię teraz tzw. podstawowe symbole wyrażenia regularne (BRE, Basic Regular Expression). lub? kropka: odpowiada dowolnemu pojedynczemu znakowi z wyjątkiem znaku przedstawiającego koniec linii np. wyrażenie regularne b.l przedstawia zarówno słowo bal jak ból jak i każdą inną kombinacje typu bel, bil, bpl, [ ] pozwala dopasować dowolny znak ze zbioru zawartego między nawiasami, wszystkie znaki występujące między nawiasami mają zwykłe znaczenie oprócz myślnika, który jest używany do tworzenia zakresu znaków np. [a z] oznacza wszystkie litery od a do z czyli a każdą małą literę alfabetu. Znak ^, umiejscowiony na początku nawiasów [^ ] wyznacza negacje zbioru zdefiniowanego między nawiasami np. [^0 9] oznacza wszystkie znaki oprócz 0,1,2,3,4,5,6,7,8,9 * gwiazdka dopasowuje zero lub więcej wystąpień znaków poprzedzających *. Zwracamy uwagę, że gwiazdka w wyrażeniach regularnych ma inne znaczenie niż gwiazdka w generowaniu nazwy plików, w tym przypadku * oznacza dowolnie długi także pusty ciąg różnych znaków. W wyrażeniach regularnych dowolny ciąg dowolnych znaków zapisujemy jako.* ^ akcent w formie daszka wskazuje, że ciąg znaków występujący po nim znajduje się na początku linii. $ dolar jest przeciwieństwem ^ i wskazuje, że ciąg znaków, który go bezpośrednio poprzedza znajduje się na końcu wiersza Wyrażenie regularne i jego opis (przykłady) /./ Oznacza wiersz, który zawiera co najmniej jeden znak /../ Oznacza wiersz zawierający przynajmniej dwa znaki /^#/ Oznacza wiersz zaczynający sie od '#' /^$/ Oznacza wiersz pusty /}$/ Oznacza wiersz, który kończy się '}' (bez spacji) /} *$/ Oznacza wiersz kończący się '}' po której występuje zero lub więcej spacji /[abc]/ Oznacza wiersz zawierający 'a', 'b' lub 'c'

Przykłady działania edytora sed pokażemy segregując je według akcji 1. Akcja print polecenie p sed p plik.txt wypisuje na ekran zawartość pliku plik.txt. Każdy wiersz jest wypisany dwukrotnie ponieważ sed domyśle wysyła każdy wiersz na standardowe wyjście. Aby temu zapobiec dodaje się opcje n sed n p plik.txt wypisuje na ekran zawartość pliku plik.txt bez powtórzeń. Ale możemy również określać które z linijek należy poddać działaniu sed n 1p plik.txt wypisze na ekran ale tylko pierwsza linijkę sed n 10p plik.txt - wypisze na ekran ale tylko dziesiątą linijkę sed n 1,10p plik.txt wypisze na ekran linijki od pierwszej do dziesiątej sed n 5,$p plik.txt wypisze na ekran linijki od 5 do ostatniej w pliku Linijki które poddane są działaniu można określić również poprzez wyrażenia regularne sed n /^T/p plik.txt wypisze wszystkie linijki zaczynające się na literę T sed n /^[1-9]/p plik.txt wypisze wszystkie linijki nie zawierające cyfr Albo można to połączyć: sed n 1,/^T/p plik.txt wypisze wszystkie linijki od pierwszej do zaczynającej się na literę T Można połączyć dwa lub więcej poleceń sed używając opcji e sed n e 1p e 10p e 15p plik.txt wypisze na ekran linijkę 1, 10 oraz 15 Można to również zrobić za pomocą znaku ; sed n 1,3p;/^T/p plik.txt wypisze linijki od 1 do 3 oraz zaczynające się na literę 2. Akcja append a dodaje podane wyrażenie za wskazanymi wierszami sed 1aHello plik.txt - po pierwszym wierszu doda wiersz z Hello sed 1a Hello\ >to ja plik.txt symbol \ oznacza łamanie wiersza sed /^T/aHello plik.txt dodaje linijkę z Hello po każdym wystąpieniu linijki zaczynającej się na literę T 3. Akcja insert i dodaje podane wyrażenie przed wskazanym wierszem sed 1,3iHello plik.txt doda linijkę z Hello przed linijkami od 1 do 3 4. Akcja wstawiania pliku r wstawia zawartość pliku za podanym wierszem sed 1r plik2.txt plik.txt wstawia zawartość pliku2.txt za pierwszą linijką pliku plik.txt

5. Akcja delete d usuwa wskazane wiersze sed 3d plik.txt usunie wiersz 3 sed 3,6d plik.txt usunie wiersze od 3 do 6 sed /of/,$d plik.txt usunie wiersze od zawierającego of do ostatniego sed /AGH/,/END/d plik.txt usunie wszystkie wiersze od wiersza który zawiera łańcuch AGH do wiersza który zawiera łańcuch END 6. Akcja replace c zastępuję podanym tekstem wskazany wiersz sed 1,3cHello plik.txt zastępuję wiersze od 1 do 3 wierszem z tekstem Hello 7. Akcja find replace dla znaków y zamienia pojedyncze znaki każdy znak z pierwszego zestawu znaków zostaje zastąpiony odpowiednim znakiem z drugiego zestawu znaków sed y/a/b plik.txt zastępuje każde wystąpienie znaku a na znak b sed y/abc/def plik.txt zastępuję wystąpienie znaku a na d, b na e i c na f 8. Akcja find replace dla łańcuchów znakowych zamienia wystąpienie danego łańcucha znakowego innym łańcuchem znakowym sed s/agh/university/ plik.txt zastępuje każde wystąpienie ciągu znaków AGH na University ale tylko raz w każdej linijce sed s/agh/university/g plik.txt zastępuje każde wystąpienie ciągu znaków AGH na University, dodanie opcji g czyni tą zamianę globalną sed n s/agh/university/p plik.txt - to co powyżej ale tylko pasujące wiersze są wyprowadzane sed n 1,10s/AGH/University/g plik.txt - zastępuje każde wystąpienie ciągu znaków AGH na University ale tylko w linijkach od 1 do 10 sed n /^$/,/^END/s/AGH/University/g plik.txt -zastępuje każde wystąpienie ciągu znaków AGH na University ale tylko w bloku który zaczyna się wierszem pustym a kończy linijką zaczynającą się na END Do tej pory przyjrzeliśmy się prostym i w miarę złożonym podstawieniom, ale sed potrafi jeszcze więcej. Możemy odnosić się do dowolnej części lub całości tekstu odnalezionego przez wyrażenie regularne i użyć jej do stworzenia podstawianego napisu. Przykładowo, załóżmy że chcemy odpowiedzieć na wiadomość. Poniższa komenda poprzedzi każdą linię wyrażeniem "Stefan powiedział: ": sed s/.*/stefan powiedział: &/ pliki.txt znak & oznacza znaleziony wzorzec Ponadto mamy do dyspozycji Mamy do dyspozycji dziewięć rejestrów, w których możemy przechowywać wzorce. Należy odpowiednio oznaczyć (nawiasami \(...\)) wyrażenie, które chcemy zachować. Można odwołać się odpowiednio do dziewięciu wzorców w wierszu oznaczając je odpowiednio: \1 do \9. sed s/\(agh\)/x\1:x/g pliki.txt znalezione wyrażenie AGH zastępuję XAGHX

GREP - program (komenda wiersza poleceń), który służy do wyszukiwania w tekście i wyodrębniania linii zawierających ciąg znaków pasujący do podanego wyrażenia regularnego. SKŁADNIA grep [opcje] wzorzec plik/pliki OPCJE: -c - wyświetla liczbę linii z znalezionym wzorcem np. grep c [1-9] plik.txt wyświetla liczbę linii zawierających cyfry -v - wyświetla wszystkie linie nie zawierające wzorca -n - podaje numery wierszy w pliku źródłowym np. grep n Ala plik.txt -i - nie różnicuje działania wobec małych i dużych liter -e alternatywa wielu wzorców odpowiednik lub np. grep e ala e kot plik.txt -l - wyświetla nazwę tych plików w których znajduje się określony wzorzec np. grep l Ala katalog/* -L wyświetla nazwę tych plików w których nie znaleziono określonego wzorca -r gdy plik podany do przeszukania jest katalogiem, to zostaną przeszukane wszystkie pliki w tym katalogu FIND przeszukiwanie katalogów SKŁADNIA: find punkt_startu opcje kryterium ( name 'abc*' atime +n) akcja co robic ( ls) find./ maxdepth 1 name 'p*' mtime 1 ls mtime n podyfikowany dokladnie n*24 godziny temu mtime +n podyfikowany nie wcześniej niż 24 godz temu VI edytor tekstu vi <nazwa pliku> - otwiera plik w vi i przejście do trybu edycji esc wyjście z trybu insert :q wyjście (w trybie insert) :q! wyjście bez zapisu :w zapis do pliku o znanej nazwie :w <nazwa pliku> - zapis do pliku o podanej nazwie :wq wyjście z zapisem :f pokazuje nazwę edytowanego pliku :split <nazwa pliku> - otwiera równolegle drugi plik :vsplit <nazwa pliku> - j.w. ale dzieli ekran poziomo ctrl+ww przejście między oknami v przejście do trybu visiual (możliwość zaznaczania strzałkami) y kopiuje zaznaczony tekst

p wklejanie d usuwa zaznaczony tekst