Příkaz sed v Linuxu s příklady

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.

Joshua James
Následuj mě
Nejnovější příspěvky uživatele Joshua James (vidět vše)

Napsat komentář