sed
Obsah
¨
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?
sedto 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řísedtzv. „svatou trojici“ pro zpracování textu v Linuxu. Zatímcogrephledá aawkzpracovává sloupce a data,sedje mistrem v transformaci řádků.
sed.txt · Poslední úprava: autor: admin
