¨====== 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ů. [[it_encyklopedie:linux_rozcestnik|Zpět na Linux]]