GNU/Linux >> Znalost Linux >  >> Linux

Linux sed Použití příkazů s příklady

Sed, zkratka pro Stream EDitor, je příkaz, který se používá k provádění textových transformací a manipulací se souborem. Některé z těchto transformací zahrnují vyhledávání a nahrazování textu. Pomocí příkazu sed Linuxu můžete manipulovat a upravovat textové soubory, aniž byste je museli otevírat. V tomto tutoriálu se naučíte, jak manipulovat s textovými soubory pomocí příkazu sed.

Syntaxe příkazu Linux sed

$ sed  {OPTIONS} filename

V tomto tutoriálu budeme používat linuxgeek.txt soubor jako náš referenční soubor.

# cat linuxgeek.txt

Výstup

1. Nahrazení nebo nahrazení řetězce

Ve většině případů se k nahrazení řetězců textu používá příkaz sed.

Níže uvedený příkaz nahrazuje „Linux ‘ s ‘Unix ‘.

# sed 's/Linux/Unix/' linuxgeek.txt
  • Znaky s v příkazu je indikátor nahrazení.
  • / jsou oddělovače
  • Linux je hledaný výraz
  • unix je náhradní termín

Ve výchozím nastavení nahradí příkaz sed pouze první výskyt v řádku . Následující výskyty nebudou nahrazeny ani nahrazeny.

Výstup

2. Nahrazení nebo nahrazení n-tého výskytu v řádku

Pokud chcete nahradit druhý výskyt řetězce v řádku, použijte /2 příznak, jak je znázorněno.

# sed 's/Linux/Unix/2' linuxgeek.txt

Výstup

3. Nahrazení nebo nahrazení všech výskytů vzoru v souboru

Chcete-li nahradit všechny výskyty vyhledávacího vzoru v souboru, použijte /g vlajka. /g je globální náhrada.

# sed 's/Linux/Unix/g' linuxgeek.txt

Výstup

4. Nahrazení nebo nahrazení všech výskytů řetězce pouze v konkrétním řádku

Pokud chcete nahradit všechny výskyty řetězce na konkrétním řádku, řekněme na řádku 2, použijte níže uvedenou syntaxi

# sed '2 s/Linux/Unix/g' linuxgeek.txt

Výstup

5. Nahrazení nebo nahrazení řetězce v určitém rozsahu řádků

Pokud chcete určit rozsah řádků, ve kterých dojde k nahrazení řetězce, použijte příklad uvedený níže. Příklad dává pokyn k nahrazení od řádků 1-3

# sed '1,3 s/Linux/Unix/g' linuxgeek.txt

Výstup

Navíc můžete nahradit text z určitého řádku na konec souboru, jak je znázorněno

# sed '2,$ s/Linux/Unix/g' linuxgeek.txt

Příkaz dělá to, že nahradí všechny výskyty od 2. řádku do posledního řádku souboru.

Výstup

6. Uveďte závorku k prvnímu znaku každého slova

Níže uvedený příklad ukazuje, jak můžete vložit závorku na každý první znak slova na řádku.


$ echo "Hey Guys, Welcome To Linux Operating System" | sed 's/\(\b[A-Z]\)/\(\1\)/g'

Výstup

7. Odstranit řádky ze souboru

Můžete také použít příkaz linux sed k odstranění řádků v souboru.

Příklady

Syntaxe:


$ sed 'nd' filename.txt

Chcete-li odstranit 3. řádek v souboru, spusťte

$ sed '3d' linuxgeek.txt

Výstup

Chcete-li odstranit rozsah řádků, řekněme od řádku 3 do řádku 5, spusťte příkaz:

$ sed '3,5d' linuxgeek.txt

Výstup


Linux
  1. Příkaz Linux Sed:Použití a příklady

  2. Linux Tee Command s příklady

  3. JQ Command v Linuxu s příklady

  1. wc Linux Command s příklady

  2. Linux řazení příkazů s příklady

  3. Echo Command v Linuxu (s příklady)

  1. man Command v Linuxu s příklady

  2. Příkaz AWK v Linuxu s příklady

  3. Curl Command v Linuxu s příklady