¨

sed (Stream Editor)

sed je řádkový editor, který transformuje text na základě zadaných pravidel. Funguje tak, že čte vstup řádek po řádku, provede úpravu v paměti (v tzv. pattern space) a výsledek vypíše na standardní výstup (obvykle obrazovku).

1. Základní syntaxe

Základní zápis příkazu vypadá následovně:

sed [přepínače] 'příkaz' soubor

2. Nejčastější použití: Nahrazování textu

Nejpoužívanějším příkazem v rámci `sed` je s (substitute).

Základní nahrazení

sed 's/starý/nový/' soubor.txt

Nahradí první výskyt slova „starý“ na každém řádku slovem „nový“.

Globální nahrazení

sed 's/starý/nový/g' soubor.txt

Přidáním příznaku g (global) nahradíte všechny výskyty na řádku.

Změna přímo v souboru

Příkaz sed standardně soubor nemění, jen vypisuje výsledek. Pro uložení změn použijte přepínač -i (in-place):

sed -i 's/chyba/oprava/g' dokument.txt

3. Další užitečné funkce

Příkaz	Akce	Příklad
Mazání	Smaže řádky odpovídající vzoru.	sed '3d' soubor (smaže 3. řádek)
Vypisování	Vypíše pouze určité řádky (s přepínačem -n).	sed -n '1,5p' soubor (vypíše 1. až 5. řádek)
Regulární výrazy	Umožňuje používat složité vyhledávací vzory.	sed 's/[0-9]/X/g' (nahradí všechny číslice znakem X)

4. Proč používat sed?

Automatizace: Je ideální pro shell skripty. Potřebujete změnit cestu v 50 konfiguračních souborech najednou? sed to udělá za sekundu.

Zpracování velkých dat: Protože čte soubor po řádcích, spotřebovává minimum paměti i u gigabajtových logů.

Proudy (Pipes): Skvěle spolupracuje s ostatními příkazy (např. cat log.txt | sed …).

5. Příklad z praxe

Představte si, že máte log soubor a chcete z něj vymazat všechny prázdné řádky:

sed -i '/^$/d' log.txt

(Vysvětlení: ^$ je regulární výraz pro začátek řádku následovaný okamžitě koncem řádku, tedy prázdný řádek.)

Zajímavost: Spolu s nástroji grep a awk tvoří sed tzv. „svatou trojici“ pro zpracování textu v Linuxu. Zatímco grep hledá a awk zpracovává sloupce a data, sed je mistrem v transformaci řádků.

Zpět na Linux