Uživatelské nástroje

Nástroje pro tento web


sed

¨

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

sed.txt · Poslední úprava: autor: admin