Příkaz sed v Linuxu je výkonný editor proudů, který umožňuje provádět základní textové transformace na vstupním proudu (souboru nebo vstupu z kanálu). Je široce používán pro vyhledávání, hledání a nahrazování, vkládání a mazání textu v souborech. Na rozdíl od jednoduchých textových editorů zpracovává sed data v potrubí a je zvláště užitečný pro automatizaci textových manipulací ve skriptech shellu.
Mezi klíčové vlastnosti sed patří schopnost:
- Nahraďte text v souboru pomocí regulárních výrazů.
- Odstraňte čáry na základě konkrétních vzorů.
- Vložte nebo připojte text ke konkrétním řádkům.
- Transformujte nebo převádějte text na základě složitých vzorů.
Tato příručka poskytne příklady, které demonstrují praktické použití příkazu sed v Linuxu a předvedou, jak jej lze využít pro různé úlohy zpracování textu.
Syntaxe kláves a možnosti příkazu Sed
Než se ponoříme do příkladů, je důležité pochopit primární syntaxi příkazu sed:
sed [OPTION]... {script-only-if-no-other-script} [input-file]...
Zde je několik běžně používaných možností:
- -e: Umožňuje použití více příkazů.
- -n: Potlačí výchozí chování při tisku každého řádku.
- -i: Upravuje soubory na místě (buďte opatrní, protože upravuje původní soubor).
Základní příklady Sed Command v Linuxu
Základní substituce textu
Jedním z nejběžnějších použití sed je nahrazení textu.
echo "Welcome to Linux" | sed 's/Linux/Unix/'
výstup:
Welcome to Unix
Globální substituce
Ve výchozím nastavení sed nahradí první výskyt v řádku. Chcete-li nahradit všechny výskyty, použijte příznak 'g'.
echo "Apples are better than apples" | sed 's/apples/oranges/g'
výstup:
Apples are better than oranges
Smazání řádku
sed může také odstranit čáry na základě specifického vzoru.
echo -e "apple\norange\nbanana" | sed '/orange/d'
výstup:
apple
banana
Vkládání a přidávání textu
Nové textové řádky můžete vložit před nebo po shodě vzoru.
echo "Hello" | sed 'i\Good Morning'
výstup:
Good Morning
Hello
Změna velikosti písmen
Pomocí sed můžete manipulovat s velikostí písmen pomocí funkce y. Podívejme se na příklad převodu malých písmen na velká:
echo "hello world" | sed 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'
výstup:
HELLO WORLD
Pokročilé použití příkazu Sed v Linuxu
Náhrada textu s více vzory
Pro více vzorů můžete použít -e k řetězení různých substitučních příkazů.
echo "Welcome to Linux. I love Linux." | sed -e 's/Linux/Unix/' -e 's/love/adore/'
výstup:
Welcome to Unix. I adore Linux.
Podmíněné nahrazení textu
Pomocí sed je možné nahradit text na základě určitých podmínek pomocí adres.
echo -e "apple\nbanana\ncherry" | sed '/banana/s/$/ - favorite fruit/'
výstup:
apple
banana - favorite fruit
cherry
Použití Sed s regulárními výrazy
Využijte sílu regulárních výrazů, aby odpovídaly složitým vzorům.
echo "Price is $100" | sed 's/$[0-9]*/& (USD)/'
výstup:
Price is $100 (USD)
Zpětné odkazy na komplexní výměny
Zpětné odkazy lze použít k odkazování zpět na části shodného vzoru.
echo "The white cat and black dog" | sed 's/\(white\|black\) \(cat\|dog\)/\2 \1/'
výstup:
The cat white and dog black
Úpravy na místě s volbou -i
Jednou z výkonných funkcí sed je možnost přímo upravovat soubory. Toho lze dosáhnout pomocí volby -i, ale před provedením jakýchkoli přímých úprav vždy zálohujte původní soubor.
echo "Original text" > temp.txt
sed -i 's/Original/Modified/' temp.txt
cat temp.txt
výstup:
Modified text
Závěr
Pochopení a zvládnutí příkazu sed může výrazně zlepšit vaši schopnost manipulovat a zpracovávat textové soubory v Linuxu. Procvičením uvedených příkladů se můžete naučit, jak efektivně zvládat běžné úlohy zpracování textu, automatizovat opakující se úlohy úprav a začlenit sed do pracovního postupu skriptování. Pravidelné experimentování s různými možnostmi a příkazy sed prohloubí vaše znalosti a umožní vám využít jeho plný potenciál. Užijte si všestrannost a výkon, který sed přináší vašim úlohám zpracování textu v Linuxu.