2.6 Edytor sed (Stream Editor)

Podobne dokumenty
Grafika na stronie. <img src="grafika.jpg" align="center"> obrazek w kolorowej ramce

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

Księga Identyfikacji wizualnej

identyfikacja wydziału -przykłady

Podstawy open source system SUSE Linux cz. II

Podstawowe zasady przygotowania prezentacji

KSIĘGA ZNAKU / KNOW KRAJOWY NAUKOWY OŚRODEK WIODĄCY 01

Publikacja wydana na potrzeby projektu:

Logotyp. Logotyp - forma podstawowa

SYSTEM IDENTYFIKACJI WIZUALNEJ KUJAWSKO-POMORSKIEGO FUNDUSZU ROZWOJU

KSIĘGA ZNAKU LUTY 2019

W pełni naturalne i bezpieczne rozwiązania dla garaży podziemnych

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

Spis treści: Logo 3. Typografia 10. Dokumenty firmowe 12

Rada Osiedla Gumieńce

EDYTOR TEKSTOWY VIM WYBRANE POLECENIA. Pracownia Informatyczna 5

Księga Systemu Informacji Miejskiej Marki Radom

SYSTEM IDENTYFIKACJI WIZUALNEJ WOJEWÓDZTWA OPOLSKIEGO

Przykładowy plik pdf do testowania załączników

System Identyfikacji Wizualnej

1. ZNAK MARKI. symbol znak graficzny 1.01

4. Materiały reklamowe

Zakład Systemów Rozproszonych

Kraków: System Informacji Miejskiej. Krakowski System Informacji Miejskiej

Kraków: System Informacji Miejskiej 1 Krakowski System Informacji Miejskiej

Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie. Księga Identyfikacji Wizualnej

Typografia. Projekt Systemu Informacji Miejskiej w Krakowie. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Załącznik nr 1 do SIWZ Nr sprawy ZP Szczegółowy opis przedmiotu zamówienia

POKAZUJEMY UCZYMY ZASPAKAJAMY POTRZEBĘ POZNANIA

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

Księga znaku. Copyright MARR S.A. - Małopolska Agencja Rozwoju Regionalnego S.A. All rights reserved

Zasady przygotowania referatu, artykułu, publikacji

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


System operacyjny UNIX Ćwiczenie 1. Podstawowe polecenia systemu Unix

Porównanie efektywności algorytmu ewolucyjnego z metodą podziału i ograniczeń dla problemu komiwojażera

METROPOLITALNE FORUM WÓJTÓW, BURMISTRZÓW, PREZYDENTÓW I STAROSTÓW

Akademia Ignatianum w Krakowie

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

SYSTEM IDENTYFIKACJI SIERPIEŃ Copyright by OLTA. All rights reserved.

byś cieszył się zielenią

5kroków. energooszczędna firma. Potencjał jest ogromny

ALFABETYCZNY SPIS MAREK WĘDKARSKICH

Nr sprawy: ZP Szczegółowy Opis Przedmiotu Zamówienia

ZASADY IDENTYFIKACJI WIZUALNEJ

Środowisko programisty Zestaw 4

Katalog Systemu Identyfi kacji Wizualnej Wydziałów Obsługi Mieszkańców w Urzędach Dzielnic Urzędu m.st. Warszawy

64 BGK BAZOWA KSIĘGA MARKI NOŚNIKI IDENTYFIKACJI

Co tester może osiągnąć w 60 minut? Testowanie eksploracyjne i sterowane kontekstem.

Rysunki i tabele. Spis tre±ci. 1 Zadania na wykorzystanie pakietu sidecap. Bo»ena Wo¹na Szcze±niak. 22 listopada 2014

Księga znaku Swiss Contribution

POPULARNE POLECENIA SKRYPTY. Pracownia Informatyczna 2

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

WYMOGI REDAKCYJNE PUBLIKACJI

ZNAK FIRMOWY EIP - PODRĘCZNIK

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

Atmosphere Conference Brand Manual

Systemy operacyjne. System operacyjny Linux - wstęp. Anna Wojak

KSIĘGA IDENTYFIKACJI WIZUALNEJ NFOŚiGW. Cz. 3 PODRĘCZNIK STOSOWANIA OZNACZEŃ Z UŻYCIEM LOGOTYPU NFOŚIGW DLA PODMIOTÓW ZEWNĘTRZNYCH

4. Druki i dokumenty

SPIS TREŚCI WSTĘP...3

Księga znaku SWISSSTANDARDS.PL

Ćwiczenie nr 12: Tworzenie stron internetowych z użyciem języka HTML Wstęp

ZARZĄDZENIE NR 67/2018 WÓJTA GMINY POSTOMINO. z dnia 5 marca 2018 r.

Przetwarzanie tekstu 2. Operacje na plikach tekstowych w systemie Linux

Księga Systemu Identyfikacji Wizualnej Marki Radom

Ewaluacja centrum informacji

Książka znaku ADVERTISING/MEDIA/COMMUNICATION

BRAND BOOK. Ośrodek Rehabilitacji Jeży Jerzy dla Jeży w Kłodzku

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

Administracja sieciowymi systemami operacyjnymi III Klasa - Linux

KSSE Logo Manual Logo i nośniki identyfikacji

Artykuł branżowy (opcja bezpłatna)

Księga znaku logo. Klub Buldoga Angielskiego w Polsce

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

Klawisze szybkiego wyboru układu drabinkowego

IDENTYFIKACJA WIZUALNA. 17 Wizytówka personalizowana 18 Teczka A4 19 Segregator

Wizualizacja wentylacji

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

KSIĘGA ZNAKU CBSS POLISH PRESIDENCY

System Identyfikacji Wizualnej

BUDOWA LOGO. logo. sygnet. logotyp. PE NE LOGO - sk³ada siê z dwóch elementów ustawionych poziomo wzglêdem siebie (sygnet, logotyp).

Folder Systemu Identyfikacji Wizualnej Marki Mazowsze

Identyfikacja wizualna WĘGLOKOKS S.A.

Pakiet Systemu omnirad

UCHWAŁA NR XXXI/270/12 RADY MIEJSKIEJ W WYSZKOWIE. z dnia 28 grudnia 2012 r.

Scenariusze zajęć. Właściwości obiektów wektorowych. Właściwości obiektów wektorowych. 1. Cele lekcji. 2. Metoda i forma pracy. 3. Środki dydaktyczne

Prawdziwa wielofunkcyjność w czerni i...w kolorze!

krótki dopisek np. z celem spotkania Miejsce na tytuł prezentacji

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

Wydział Promocji Handlu i Inwestycji. Identyfikacja wizualna

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

Księga identyfikacji wizualnej Szwajcarsko-Polskiego Programu Współpracy Część 1 - Księga znaku Swiss Contribution

PRZEWODNIK IDENTYFIKACJI WIZUALNEJ Niezależnego Zrzeszenia Studentów

Barbara Ostrowska, Krzysztof Spalik Instytut Badań Edukacyjnych

opracowano na potrzeby:

POLE OCHRONNE WERSJE NIEDOZWOLONE MODYFIKACJE KOPERTA 12. TECZKA 13.

Automatyzowanie zadan przy uz yciu makr języka Visual Basic

logo Elektronek Laboratorium Nauki i Zabawy ZAJĘCIA DLA DZIECI 18M 2 ZAJĘCIA DLA DZIECI 4 8 LAT ZAJĘCIA DLA DZIECI 2 4 LAT GALERIA O NAS KONTAKT ZAJĘĆ

We set air in motion. O ideę do przodu Innowacja w technice filtrowentylacyjnej

Transkrypt:

Podstawy open source system SUSE Linux cz. II 2-127 2.6 Edytor sed (Stream Editor) sed to edytor do manipulowania plikami tekstowymi. Jako edytor strumieniowy różni się od innych, takich jak vi lub gedit. sed nie pracuje interaktywnie, ale jest kontrolowany opcjami polecenia liniowego lub skryptem takim, jak tryb ex w vi. Edytor 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 uruchamiania sed: sed opcje polecenie nazwa_pliku Najprostszym poleceniem sed jest p (print): geeko@da51:~ > sed 'p' loremipsum.txt Jak widać w powyższym przykładzie, każdy wiersz jest dwukrotnie drukowany, ponieważ sed domyślnie wysyła każdy wiersz na standardowe wyjście. By temu zapobiec, powinno się dodać opcję -n: geeko@da51:~ > sed n 'p' loremipsum.txt

Podstawy open source system SUSE Linux cz. II 2-128 Przyjrzyjmy się bliżej części polecenie składni wywołania sed. Przede wszystkim, można podać deklarację adresu z numerami wierszy, które sed powinien sprawdzić. Są różne możliwości: brak deklaracji numer start, end - wszystkie wiersze - tylko wiersz o numerze numer, np: geeko@da51:~ > sed n '1p' loremipsum.txt - wiersze od start do end, np: geeko@da51:~ > sed n '2,4p' loremipsum.txt $ - ostatni wiersz, np: geeko@da51:~ > sed n '36,$p' loremipsum.txt facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit au gue duis dolore te feugat nulla facilisi. /regexp/ numer, /regexp/ - wiersze zgodne z regularnym wyrażeniem regexp, np: geeko@da51:~ > sed n '/^D/p' loremipsum.txt Duis te feugifacilisi. Duis autem dolor in hendrerit Duis te feugifacilisi per suscipit Duis te feugifacilisi. Duis autem dolor in hendrerit in Wyjaśnienie. Zostaną wydrukowane wiersze zaczynające się od dużej litery D. - wiersze od numer do pierwszego wiersza, który spełnia kryterium regexp, np: geeko@da51:~ > sed n '9,/^D/p' loremipsum.txt suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis te feugifacilisi. Wyjaśnienie. Zostaną wydrukowane wszystkie wiersze od wiersza 9 do pierwszego wiersza zaczynającego się od dużej litery D.

Podstawy open source system SUSE Linux cz. II 2-129 Można też, w podobny sposób, użyć wyrażenia regularnego jako punktu początkowego dla sed. Regularne wyrażenia edytora sed są podobne do tych omówionych wcześniej. Jednak są tu dodatkowe znaki specjalne wymagające poprzedzenia znakiem \ : \( ) \{ } Można połączyć dwa lub więcej poleceń sed używając opcji -e: geeko@da51:~ > sed n e '3p' e '6p' e '9p' loremipsum.txt ut lacreet dolore magna aliguam erat volutpat. suscipit lobortis nisl Wyjaśnienie. Wiersze 3, 6 oraz 9 zostaną wyświetlone na ekranie. Można też rozdzielić polecenia używając znaku ; : geeko@da51:~ > sed n '3p;6p;9p' loremipsum.txt ut lacreet dolore magna aliguam erat volutpat. suscipit lobortis nisl Ćwiczenie. Używanie sed część I Użyj sed do wyświetlenia na ekranie wierszy 10 do 15 z dowolnego pliku tekstowego.

Podstawy open source system SUSE Linux cz. II 2-130 Poniżej podano kilka innych ważnych poleceń sed: a (append) dołącza jeden lub więcej wierszy za podanym wierszem (wierszami) w poleceniu. Przykład: geeko@da51:~ > sed '1aHello Geeko' loremipsum.txt Hello Geeko Jeżeli chcesz dodać więcej niż jeden wiersz, należy znak nowego wiersza zamaskować znakiem ukośnika \ : geeko@da51:~ > sed '1aHello Geeko\ > Hello Suzie' loremipsum.txt Hello Geeko Hello Suzie i (insert) dodaje jeden lub więcej wierszy przed podanym (podanymi): geeko@da51:~ > sed '1iHello Geeko' loremipsum.txt Hello Geeko r nazwa_pliku wstawia zawartość podanego pliku za podanym wierszem (wierszami): geeko@da51:~ > sed '1r numbers.txt' loremipsum.txt 0000 123 98798 765765

Podstawy open source system SUSE Linux cz. II 2-131 d (delete) kasuje wskazany wiersz (wiersze). geeko@da51:~ > sed '1,3d' loremipsum.txt ut lacreet dolore magna aliguam erat volutpat. c (replace) zastępuje podanym tekstem wskazany wiersz (wiersze): geeko@da51:~ > sed '1,3cHello Geeko' loremipsum.txt Hello Geeko ut lacreet dolore magna aliguam erat volutpat. Wyjaśnienie. Wiersze 1 do 3 zostały zastąpione tekstem Hello Geeko. w (write) zapisuje wyjście edytora sed do podanego pliku. Można użyć tego polecenia zamiast przekierowania wyjścia przez użycie >. geeko@da51:~ > sed n '1w output.txt' loremipsum.txt Wyjaśnienie. Tworzony jest nowy plik o nazwie output.txt. Zawiera pierwszy wiersz pliku loremipsum.txt. Jeżeli pominiemy opcję -n, zawartość loremipsum.txt zostanie wyświetlona na ekranie, a nie zapisana do pliku output.txt. q (quit) kończy pracę z edytorem. geeko@da51:~ > sed '3q' loremipsum.txt Ćwiczenie. Używanie edytora sed część II Użyj sed do usunięcia pierwszych dziesięciu linii wybranego pliku tekstowego oraz zapisania ich w pliku short.txt.

Podstawy open source system SUSE Linux cz. II 2-132 y/ znak (i) /znak (i) / zamienia pojedyncze znaki. Pierwszy znak z pierwszego zestawu zostaje zastąpiony pierwszym znakiem z drugiego zestawu, drugi znak z pierwszego zestawu drugim znakiem z drugiego zestawu, i tak dalej do wyczerpania list. geeko@da51:~ > sed 'y/oim/xyz/' loremipsum.txt LXreZ YpsuZ dxlxr syt azet, cxnsectetuer adypyscyng elyt, sed dyez nxnuzzy nybh euyszxdtyncydunt Wyjaśnienie. Małe o zostaje zastąpione przez X, i przez Y, a m przez Z. Zamiast używania ukośnika, można użyć dowolnego innego znaku. Ostatnie polecenie może wyglądać następująco: lub sed 'y?oim?xyz?' loremipsum.txt sed 'yboimbxyzb' loremipsum.txt Znak po poleceniu y definuje którego znaku użyto jako separatora obu zestawów znaków i do zakończenia polecenia. s /wzorzec /string/flag (s) (substitute) zastępuje wzorzec wyszukiwania drugim wzorcem, określonym przez string. Zwykle, wzorzec wyszukiwania zawiera regularne wyrażenia. geeko@da51:~ > sed 's/dol/xxxxx/' loremipsum.txt Lorem ipsum XXXXXor sit amet,

Podstawy open source system SUSE Linux cz. II 2-133 ut lacreet XXXXXore magna aliguam erat volutpat. Wyjaśnienie. Kombinacja znaków dol zostanie zastąpiona przez XXXXX. Ćwiczenie. Używanie edytora sed część III Użyj sed do zastąpienia quis przez quod w pliku loremipsum.txt. Wyjście powinno być zapisane w pliku quodlorem.txt. Można użyć dowolnego znaku zamiast ukośnika. Wyrażenia regularne są zachłanne i próbują objąć ciąg tak długi, jak tylko jest to możliwe. Na przykład: geeko@da51:~ > echo AABBCCAABB sed s/a.*a/xx/ XXBB geeko@da51:~ > Wyjaśnienie. Regularne wyrażenie określa ciąg zaczynający się od A z następującymi po nim 0 lub więcej znaków i kończy się na A. Ponieważ wyrażenie regularne jest zachłanne, graniczne A to nie są A sąsiednie (pierwsze i drugie) tylko obejmujące jak największy ciąg znaków. Domyślnie s zastępuje tylko pierwszy znaleziony, zgodny ze wzorcem wyszukiwania, ciąg. Można kontrolować zachowanie s przez dodanie odpowiednich atrybutów (flags): g i p - każdy poszukiwany ciąg jest zastępowany w wierszu. - przypadek poszukiwanego ciągu jest ignorowany. - wiersz z poszukiwanym ciągiem jest wyprowadzany. Jeżeli

Podstawy open source system SUSE Linux cz. II 2-134 w nazwa_pliku s występuje razem z opcją -n - tylko pasujące wiersze są wyprowadzane. geeko@da51:~ > sed n 's/dol/xxxxx/p' loremipsum.txt Lorem ipsum XXXXXor sit amet, ut lacreet XXXXXore magna aliguam erat volutpat. Duis autem XXXXXor in hendrerit vel illum XXXXXore eu feugiat - wiersze spełnijące warunek są zapisywane do pliku tak, jak: sed 's/dol/xxxxx/w output.txt' loremipsum.txt - ciąg jest traktowany jako pojedynczy wiersz. Jest możliwe wtedy szukanie znaku nowego wiersza ( \n ) Można łączyć atrybuty, na przykład: sed 's/dol/xxxxx/gi' loremipsum.txt Czasami potrzebny jest wzorzec do porównania wyrażeń określonych w części string polecenia sed. 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. geeko@da51:~ > sed 's/\([a c]\)/x\1x/g' loremipsum.txt Lorem ipsum dolor sit XaXmet, XcXonseXcXtetuer XaXdipisXcXing elit, sed diem nonummy nixbxh euismodtinxcxidunt Wyjaśnienie. Wyrażenie regularne wyłapuje wszystkie a, b oraz c i dołącza do nich X z przodu i z tyłu. n (next) sprawdzany jest wiersz za wzorcem. h (hold), g, G, x bieżący wiersz jest wczytywany z sed do bufora (pattern space). Następnie jest przekształcany i wysyłany do kanału wyjścia. Za pomocą polecenia h możemy kopiować zawartość bufora pattern space do innego bufora, tzw. holding buffer. Za pomocą G można wstawić zawartość holding buffer do bieżącego wiersza. geeko@da51:~ > sed '1h;3G' loremipsum.txt

Podstawy open source system SUSE Linux cz. II 2-135 Wyjaśnienie. Pierwszy wiersz kopiowany jest do bufora a następnie wstawiany za wierszem trzecim. Polecenie g zastępuje bieżący wiersz zawartością bufora: geeko@da51:~ > sed '1h;3g' loremipsum.txt Polecenie x zamienia zawartość bufora pattern space oraz bufora holding buffer. geeko@da51:~ > sed '1h;2x;4G' loremipsum.txt ut lacreet dolore magna aliguam erat volutpat. Wyjaśnienie. Pierwsze polecenie 1h kopiuje wiersz pliku loremipsum.txt do bufora holding buffer. 2x'' zamienia zawartość drugiego wiersza (pusty wiersz) z zawartością bufora holding buffer. Zawartość bufora (pusty wiersz) jest wstawiany za wierszem czwartym, jako wynik polecenia 4G. Można zapisać całość lub część poleceń sed w zewnętrznym pliku i wywołać poleceniem sed z opcją -f : sed f commands.txt loremipsum.txt Zewnętrzny plik musi być zgodny z poniższymi zasadami: 1.Wiersz zaczynający się znakiem # jest komentarzem i nie będzie interpretowany; 2.Przed i za poleceniem dopuszczalne są dowolne wcięcia (spacje); 3.Przy zapisie więcej niż jednego polecenia w wierszu, należy je oddzielić średnikami.

Podstawy open source system SUSE Linux cz. II 2-136 Skrypt będzie wykonany dla każdego wiersza pliku tekstowego. Ćwiczenie. Używanie edytora sed część IV Napisz skrypt sed, który zastępuje dolor przez XXXXX oraz każde o przez O - w pliku loremipsum.txt. Wszystkie wiersze zaczynające się od Duis powinny być usunięte. Wyjście powinno być zapisane w pliku scriptlorem.txt. Przykłady omawiane w książce mogą wydawać się bardzo proste, tym niemniej można używać sed w programach bash'a do przekształcania plików tekstowych. Operacje dodawania i usuwania elementów pliku tekstowego są przydatne np. przy opracowywaniu automatycznie tworzonych plików logów.