Rozdíly
Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
vyuka:sed [2017/02/01 13:25] admin |
vyuka:sed [2023/11/15 20:54] |
||
---|---|---|---|
Řádek 1: | Řádek 1: | ||
- | Sed znamená '' | ||
- | |||
- | Příkaz může (ale nemusí) být uvozen parametrem -e. Je nanejvýš vhodné příkaz celý vložit do apostrofů - budeme tu totiž používat regulární výrazy, a nechceme aby se interpretovaly [[vyuka: | ||
- | |||
- | ===Příkazy=== | ||
- | Nejjednodušší příkaz je '' | ||
- | <code bash> | ||
- | #takto použitý příkaz vytiskne každou řádku dvakrát. | ||
- | sed -e ' | ||
- | |||
- | #parametr -n zabrání implicitnímu vypisování řádek - takže vypíše každou řádku pouze jednou. | ||
- | sed -n -e ' | ||
- | </ | ||
- | |||
- | Již jsme používali příkaz '' | ||
- | |||
- | <code bash> | ||
- | #Zamění ahoj za nazdar. Pokud jsou ale na řádce dvě ahoj, zamění pouze první... | ||
- | |||
- | sed -e ' | ||
- | #...pro zaměnění všech musíme ještě použít parametr g - global: | ||
- | sed -e ' | ||
- | </ | ||
- | |||
- | Vidíme, že příkaz s má v sobě '' | ||
- | * '' | ||
- | * regulární výraz, odpovídající části textu, již chceme zaměnit | ||
- | * to, čím ji chceme nahradit ... to už není regulární výraz - ale můžeme zde použít \1 \2 ... '' | ||
- | * parametry příkazu - například '' | ||
- | |||
- | Příklady: | ||
- | <code bash> | ||
- | # uzávorkování každého velkého písmenka: | ||
- | sed -e ' | ||
- | |||
- | # to samé jako grep pattern | ||
- | sed -n ' | ||
- | </ | ||
- | |||
- | ===Další příkazy=== | ||
- | * '' | ||
- | * '' | ||
- | * '' | ||
- | * '' | ||
- | * '' | ||
- | |||
- | Příkazy se oddělují středníkem, | ||
- | ---- | ||
- | ===Omezovací příkazy - '' | ||
- | Píše se před příkaz, oddělen od něj mezerou. | ||
- | Může omezovat dle pořadí řádků, nebo regulárním výrazem uzavřeným mezi lomítky (''/ | ||
- | Chceme-li negovat, použijeme ''' | ||
- | |||
- | <code bash> | ||
- | #smaže třetí řádku | ||
- | sed -e '3 d' | ||
- | |||
- | # Smaže první číslo na všech řádkách začínajících A | ||
- | sed -e '/^A/ s/ | ||
- | |||
- | # smaže první až pátou řádku | ||
- | sed -e '1,5 d' | ||
- | |||
- | # smaže vše krom třetí řádky | ||
- | sed -e '3 !d' | ||
- | </ | ||
- | |||
- | ==== úloha ==== | ||
- | Chceme z konfiguračního souboru zobrazit pouze to podstatné - tedy zbavit se komentářů. | ||
- | Komentář začíná znakem #. | ||
- | Zjednodušení zadání: přefiltrovat konfigurák tak, že smažeme řádky začínající # | ||
- | |||
- | - Změň jméno " | ||
- | - Smaž první tři řádky | ||
- | - Vypiš řádky 5 až 10 | ||
- | - Smaž řádky které obsahují " | ||
- | - Vypiš všechny lidi, kteří mají narozeninu v listopadu, nebo prosinci | ||
- | - Přidej tři hvězdičky na konec řádek začínajících " | ||
- | - Řádkům, které mají nulový den nebo měsíc narozen změň tuto hodnotu na " | ||
- | - Změň řádku obsahující " | ||
- | - Změň narození Ilony na 14.12.1981 . Nepoužij k tomu původní datum. | ||
- | - Napiš sed script (parametr -f file) který: | ||
- | * nad první řádku (insert) dá " | ||
- | * vymaže data narození pokud se ten člověk narodil v roce 1980 | ||
- | * za poslední řádku ($) dá (append) "KONEC SOUBORU" | ||
- | |||
- | < | ||
- | Marie Zemanová, | ||
- | Martin Humlíček, | ||
- | Emilie Fejlová, | ||
- | Helena Rousová, | ||
- | Jan Drozd, | ||
- | Petr Ducheček, Pardubice, | ||
- | Petra Bandurová, | ||
- | Ludmila Rudlová, | ||
- | Oldřich Kobza, | ||
- | Zlata Schánilcová, | ||
- | Josef Dvořák, | ||
- | Jaroslava Potočková, | ||
- | Svatoslav Scholze, | ||
- | Eva Husarová, | ||
- | Zdeněk Jedlička, | ||
- | Ilona Hoblíková, | ||
- | Jiří Kočař, | ||
- | Ondřej Černošek, | ||
- | František Šembera, | ||
- | Jana Honsová, | ||
- | Josef Čirý, | ||
- | </ | ||