¨
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).
Základní zápis příkazu vypadá následovně:
sed [přepínače] 'příkaz' soubor
Nejpoužívanějším příkazem v rámci `sed` je s (substitute).
sed 's/starý/nový/' soubor.txt
sed 's/starý/nový/g' soubor.txt
g (global) nahradíte všechny výskyty na řádku.
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| 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) |
sed to udělá za sekundu.cat log.txt | sed …).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řísedtzv. „svatou trojici“ pro zpracování textu v Linuxu. Zatímcogrephledá aawkzpracovává sloupce a data,sedje mistrem v transformaci řádků.