Úpravy textových souborů a výstupu terminálu jsou každodenní prací pro ty, kteří spravují stroje Linux. Obslužné programy příkazového řádku, jako je sed, umožňují uživateli upravit a změnit obsah textového souboru přímo z okna terminálu.

V tomto článku se budeme podrobně zabývat příkazem sed spolu s některými základními příklady, které ukazují sílu nástroje sed v Linuxu.

Co je příkaz sed?

Příkaz sed, což je zkratka pro Editor streamů, je nástroj příkazového řádku, který umožňuje uživatelům systému Linux provádět textové operace se soubory a terminálovými výstupy. Pomocí nástroje sed mohou uživatelé vyhledávat a nahrazovat konkrétní slova v textu, zobrazit určitou část výstupu a upravovat textové soubory, aniž by je otevírali.

Tři základní operace podporované příkazem sed jsou:

  1. Vložení
  2. Vymazání
  3. Náhrada (Najít a nahradit)

Pokročilí uživatelé mohou také implementovat regulární výrazy pomocí příkazu sed, aby mohli efektivněji upravovat textové proudy.

Základní syntaxe příkazu je:

sed [možnosti] [vzor] [cesta k souboru]
instagram viewer

...kde možnosti jsou různé funkce příkazu, vzor je regulární výraz nebo skript, kterému chcete odpovídat, a cesta k souboru je cesta k textovému souboru, který obsahuje text.

10 Příklady příkazu Linux sed

Pokud se plánujete stát běžným uživatelem systému Linux, může být pro vás užitečné vědět, jak upravovat soubory, hledat a nahrazovat konkrétní slova a filtrovat výstup terminálu. Tato část obsahuje několik příkladů příkazu sed, který z vás určitě udělá linuxového uživatele.

K předvedení v příspěvku použijeme následující textový soubor.

Toto je ukázkový textový soubor.
Je to úžasný soubor, který nám všem pomůže.
Příkaz sed je také skvělý pro úpravy streamu.
Chcete se naučit používat příkaz?
Toto je další řádek v souboru.
Toto je třetí obecný řádek v souboru.
Tento soubor je pojmenován jako textový soubor.
To je jablko.
Tohle je pomeranč.

1. Zobrazit řadu řádků

Příkazy Linuxu, jako je hlava a ocas, vydávají první nebo posledních deset řádků textového souboru. Ale co když chcete získat obsah mezi dvěma konkrétními řádky v souboru? V takových situacích by se příkaz sed mohl hodit.

Výstup obsahu mezi řádky 3 a 5 souboru textový soubor.txt:

sed -n '3,5p' textfile.txt

The -n příznak brání sedu v zobrazení prostoru vzorů na konci každého cyklu. Můžete také použít --klid a --tichý možnosti místo -n. The p argument znamená tisk a slouží k zobrazení shodných čar uživateli.

Provedení výše uvedeného příkazu v ukázkovém souboru vytvoří následující výstup.

Příkaz sed je také skvělý pro úpravy streamu.
Chcete se naučit používat příkaz?
Toto je další řádek v souboru.

Chcete-li načíst celý obsah souboru s výjimkou zadaného rozsahu, použijte d namísto p v příkazu:

sed '3,5d' textfile.txt

The d příznak odstraní uzavřené řetězce z výstupu a zobrazí zbytek obsahu.

Toto je ukázkový textový soubor.
Je to úžasný soubor, který nám všem pomůže.
Toto je třetí obecný řádek v souboru.
Tento soubor je pojmenován jako textový soubor.
To je jablko.
Tohle je pomeranč.

2. Zobrazit nesouvislé řádky

Chcete-li tisknout nesouvislé řádky mezi více rozsahy v souboru:

sed -n -e '1,2p' -e '5,6p' textfile.txt

Výstup:

Toto je ukázkový textový soubor.
Je to úžasný soubor, který nám všem pomůže.
Toto je další řádek v souboru.
Toto je třetí obecný řádek v souboru.

The -E vlajka pomáhá vykonávající více akcí pomocí jediného příkazu.

3. Vložte mezeru mezi řádky

Pokud z nějakého důvodu chcete vložit prázdné řádky mezi každý řádek v textovém souboru, použijte G argument s výchozím příkazem sed.

sed G textfile.txt

Chcete-li do výstupu vložit několik prázdných řádků, předejte více G argumenty oddělené znakem středník (;) znak.

sed 'G; G 'textfile.txt

4. Nahraďte slovo v textovém souboru

Pokud chcete nahradit každý výskyt konkrétního slova nějakým jiným slovem, použijte s a G argumenty s příkazem. Základní syntaxe pro nahrazování slov pomocí příkazu sed je:

sed s / originalword / replaceword / g název souboru

Pomocí výše uvedené syntaxe můžete slovo nahradit úžasný s super v souboru textový soubor.txt:

sed s / amazing / super / g textfile.txt

The s argument označuje substituce a G příkaz se používá k nahrazení spárovaného obsahu zadaným nahrazujícím obsahem.

Chcete-li nahradit druhý výskyt slova sed, předejte číslo znaku G argument. V tomto případě:

sed s / amazing / super / g2 textfile.txt

Pokud chcete při nahrazování slov ignorovat velká a malá písmena, použijte gi namísto G, kde i znamená ignorovat případ.

sed s / Amazing / super / gi textfile.txt

Příbuzný: Používání Vi? Zde je návod, jak otevřít soubor, poté uložit a ukončit

5. Náhradní slova uvnitř rozsahu

Můžete také nahradit slova uvnitř určitého rozsahu.

sed '2,5s / amazing / super / g' textfile.txt

6. Proveďte více substitucí najednou

Pokud chcete provést dvě nebo více substitucí najednou, oddělte příkazy pomocí středník (;) znak.

sed 's / amazing / super / g; s / command / utility / gi 'textfile.txt

Systém zobrazí následující výstup.

Toto je ukázkový textový soubor.
Je to super soubor, který nám všem pomůže.
Obslužný program sed je také skvělý pro úpravy streamu.
Chcete se naučit používat nástroj?
Toto je další řádek v souboru.
Toto je třetí obecný řádek v souboru.
Tento soubor je pojmenován jako textový soubor.
To je jablko.
Tohle je pomeranč.

7. Slova vyměňujte, pouze pokud je nalezena shoda

Příkaz sed můžete také použít k nahrazení slova, pouze pokud je v řádku nalezena určitá shoda. Například nahradit slovo A s an pokud slovo oranžový je přítomen v řádku:

sed -e '/ orange / s / a / an / g' textfile.txt

Vydání výše uvedeného příkazu vygeneruje:

Toto je ukázkový textový soubor.
Je to super soubor, který nám všem pomůže.
Obslužný program sed je také skvělý pro úpravy streamu.
Chcete se naučit používat nástroj?
Toto je další řádek v souboru.
Toto je třetí obecný řádek v souboru.
Tento soubor je pojmenován jako textový soubor.
To je jablko.
Tohle je pomeranč.

Všimněte si, že slovo v řadě To je jablko nebyl nahrazen, protože systém slovo nenašel oranžový v tom.

8. Nahrazujte slova pomocí regulárních výrazů

Pro ty, kteří vědí, jak používat regulární výrazy, je provádění operací na řetězcích pomocí příkazu sed mnohem jednodušší. Můžete implementovat regulární výrazy, abyste zvýšili sílu příkazu.

Nahradit všechny výskyty slova Úžasný nebo úžasný s super:

sed -e '/ [Aa] mazing / super / g' textfile.txt

Podobně můžete také použít pokročilé regulární výrazy k provedení konkrétních operací pomocí příkazu sed.

9. Potrubí sed s dalšími příkazy

Řetězit sed můžete také s dalšími příkazy Linuxu. Například můžete potrubí lspci příkaz se sed přidá prázdné mezery mezi řádky ve výstupu.

lspci | sed G.

Chcete-li nahradit konkrétní slova ve výstupu souboru IP trasa show příkaz:

ip route show | sed s / src / zdroj / g

Výše uvedený příkaz slovo nahradí zdroj místo původního slova src.

Příbuzný: Jak používat příkaz Najít k vyhledávání souborů v systému Linux

10. Upravte a zálohujte původní soubor

Pokud pracujete se systémovými soubory, je důležité při provádění změn zálohovat původní soubor. To vám pomůže vrátit změny v případě, že se něco zlomí.

Chcete-li zálohovat původní soubor pomocí sed, použijte -i příznak v příkazu.

sed -i'.backup 's / amazing / super / g' textfile.txt

Bude vytvořen nový soubor s názvem textový soubor.txt.zálohování. Můžete zkontrolovat, zda se tyto dva soubory liší, pomocí rozdíl příkaz.

diff textfile.txt textfile.txt.zálohování

Úpravy řetězců v Linuxu pomocí sed

Někdy, když pracujete s textovými soubory na terminálu, je formátování a úprava výstupu pro lepší čitelnost nutností. Sed a awk jsou nástroje příkazového řádku v systému Linux, které umožňují uživateli efektivně pracovat s textovými soubory rozdělením dat do samostatných řádků.

Mnoho uživatelů si jen těžko pamatuje argumenty a příznaky příkazu sed, protože je jich k dispozici mnoho. Znalost, jak získat příručky příkazového řádku pro libovolný příkaz systému Linux, vám pomůže snadno se z takových situací dostat.

E-mailem
7 způsobů, jak získat nápovědu pro příkazový řádek v systému Linux

Všechny základní příkazy pro učení příkazů Linux z příkazového řádku

Přečtěte si další

Související témata
  • Linux
  • Textový editor
  • Terminál
  • Příkazový řádek
O autorovi
Deepesh Sharma (36 článků publikováno)

Deepesh je Junior Editor pro Linux na MUO. Píše informační obsah na internetu již více než 3 roky. Ve volném čase rád píše, poslouchá hudbu a hraje na kytaru.

Více od Deepesh Sharma

Přihlaste se k odběru našeho zpravodaje

Připojte se k našemu zpravodaji s technickými tipy, recenzemi, bezplatnými elektronickými knihami a exkluzivními nabídkami!

Ještě jeden krok…!

V e-mailu, který jsme vám právě poslali, potvrďte svou e-mailovou adresu.

.