▷ Jak používat příkaz SED v systému Linux - PŘÍKLADY

Linux je systém plný příkazů, kde každý hraje zásadní roli v chování určitých úkolů, ať už jde o správu uživatelů, objektů nebo podpory, každý příkaz má svou účast v Linuxu a jeden z těchto příkazů je Sed, o kterém si povíme v Solvetic v detailech.

Jaký je příkaz sed v LinuxuPříkaz sed je doslova editor toku, který můžeme použít k úpravě prací na textu se základními funkcemi ve vstupním toku buď ze souboru, nebo vstupu z kanálu, je -li to relevantní.

Na rozdíl od jiných textových editorů je u sed možné filtrovat text v kanálu, když procházíme vybraný obsah.

VýhodaVýhody použití sed v Linuxu jsou:

  • Můžeme vybrat text
  • Jsme schopni nahradit text
  • Přidejte do textu řádky
  • Z textu můžeme odstranit řádky
  • Umožňuje upravit nebo zachovat původní soubor

Obecná syntaxe pro použití sed je následující:

 sed MOŽNOSTI… [SCRIPT] [INPUT_FILE…]
Naučíme se některé způsoby použití tohoto příkazu v Linuxu.

1. Jak používat příkaz SED v Linuxu

Základní použití sedV tomto příkladu použijeme „echo“, abychom zjistili, jak příkaz sed může nahradit část zadaného textu, zadáme:

 echo solvitic | sed 's / vitic / vetic /'
V tomto případě říkáme sed, aby nahradil slovo „vitic“ za „vetic“, po stisknutí Enter to bude výsledkem:

ZVĚTŠIT

Vidíme, že změna je automatická.

2. Výběr textu pomocí příkazu SED Linux

Krok 1
V tomto případě budeme mít textový soubor, který je umístěn na ploše:

ZVĚTŠIT

Nyní použijeme následující řádek:

 méně Solvetic.txt
Krok 2
Po stisknutí klávesy Enter bude výsledkem:

ZVĚTŠIT

Pomocí sed je možné vybrat některé řádky souboru, proto musíme označit počáteční a konečné řádky rozsahu, které chceme vybrat, například pokud chceme extrahovat řádky dva až sedm, provedeme:

 sed -n '2,7p' Solvetic.txt
Krok 3
Uvidíme následující:

ZVĚTŠIT

Musíme mít na paměti čárku v oblastech, které mají být přiřazeny (2,7), parametr p znamená, že to znamená „tisk odpovídajících řádků“, s tím příkaz sed vytiskne všechny řádky tohoto rozsahu a -n (tichý ) se postará o to, aby se nezobrazoval text, který neodpovídá danému rozsahu.

Krok 4
Parametr -e (výraz) můžeme použít k provedení více výběrů, například:

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

ZVĚTŠIT

Krok 5
Pomocí sed je možné vybrat počáteční řádek, poté označíme, který má být v souboru procházen, a vytiskneme alternativní řádky, například zadáme:

 sed -n '1 ~ 3p' Solvetic.txt
V tomto případě první číslo odkazuje na startovní čáru a druhé číslo sed říká, které řádky po startovní čáře se zobrazí:

ZVĚTŠIT

Krok 6
Dalším použitím sed je možnost vybrat řádky, ve kterých jsou odpovídající textové vzory, pokud nevíme, odkud pochází číslo řádku, můžeme provést následující:

 sed -n ' / Run / p' Solvetic.txt

ZVĚTŠIT

Uvidíme řádky, které začínají tímto termínem.

3. Jak vytvořit náhradu pomocí SED Linux

Krok 1
V základní části jsme viděli, jak nahradit text pomocí sed, tam jsme použili parametr -s (substituce). Poté první řetězec označuje vzor hledání a druhý odkazuje na text, kterým bude nahrazen.

 sed -n 's / úkoly / akce / p' Solvetic.txt 
V tomto příkladu nahradíme „úkoly“ „akcemi“:

ZVĚTŠIT

Krok 2
S parametrem p sed se automaticky zastaví po prvním zápase, k provedení globálního vyhledávání a provedení změny obecně musíme přidat „g“:

 sed -n 's / úkoly / akce / gp' Solvetic.txt
Pokud chceme, aby nerozlišovala malá a velká písmena, přidáme „i“:
 sed -n 's / úkoly / akce / gpi' Solvetic.txt
Krok 3
Omezení nahrazení je možné vytvořit pouze pro určité části souboru, nejprve uvedeme řádky, které mají být analyzovány:
 sed -n '1,3p' Solvetic.txt

ZVĚTŠIT

Krok 4
Podívejme se na následující, můžeme zjistit, kde jsou dvě mezery, a nahradit je jednou:

 sed -n '1,3 s / * / / gp' Solvetic.txt
Hvězdička (*) představuje nulu nebo více dříve vybraného znaku.

Krok 5
Vzor hledání můžete zmenšit na jedno místo pomocí následujícího příkazu:

 sed -n '1,3 s / * / / gp' Solvetic.txt
Rozdíl vidíme ve výsledcích:

ZVĚTŠIT

V druhém případě se hvězdička shoduje s nulou nebo více s předchozím znakem, takže každý znak bez mezery vypadá jako „nulový prostor“ pomocí příkazu.

Krok 6
Abychom provedli dvě nebo více náhrad současně, provedeme:

 sed -n -e / provedeno / aplikováno / gip '-e' s / úkoly / akce / gip 'Solvetic.txt

ZVĚTŠIT

4. Možnosti výměny SED v Linuxu


Můžeme také použít sed k extrahování názvů souborů ze systému, v tomto případě musíme mít na paměti, že každý objekt musí odpovídat vyhledávacímu vzoru (podvýrazy), který lze číslovat (až do maximálně devíti prvků).

Krok 1
Tato čísla pak lze použít k odkazu na konkrétní podvýrazy.
Podvýraz musí být uzavřen v závorkách [()] a před závorkami musí být uvedeno zpětné lomítko (\), aby nebyly detekovány jako normální znak, například:

 sed 's / \ ([^:] * \). * / \ 1 /' / etc / passwd

ZVĚTŠIT

Proměnné použité v tomto příkazu jsou

  • sed 's /: označuje příkaz sed a začátek náhradního výrazu.
  • \ (: uzavřete podvýraz, kterému předchází zpětné lomítko
  • [^:] *: je první podvýraz hledaného výrazu, který obsahuje skupinu mezi závorkami, znak stříška (^) znamená „ne“, pokud je použit ve skupině, tj. jakýkoli znak, který není dvojtečkou
  • \): Koncová závorka [)] se zpětným lomítkem
  • . *: je druhý podvýraz vyhledávání, který označuje „libovolný znak a libovolný počet z nich“.
  • / \ 1: je náhradní část výrazu, který obsahuje číslo 1, kterému předchází zpětné lomítko (\) a označuje, že text odpovídá prvnímu podvýrazu
  • / ': ukončí příkaz sed

Krok 2
Pomocí předchozího příkazu jsme hledali jakýkoli znakový řetězec, který neobsahuje dvojtečku, protože každý řádek souboru / etc / passwd začíná uživatelským jménem končícím dvojtečkou. Tuto hodnotu izolující uživatelské jméno můžeme nahradit následujícím příkazem:

 sed 's / \ ([^:] * \) \ (. * \) / \ 2 /' / etc / passwd

ZVĚTŠIT

Krok 3
Pomocí následujícího příkazu můžeme zobrazit pouze uživatelská jména:

 sed 's /:.*// "/ etc/ passwd
Další možností se sed je použít parametr c (cut - cut) k nahrazení textu v souboru, například:
 sed ' / Linux / c Operační systém Linux' Solvetic.txt

ZVĚTŠIT

5. Vkládejte řádky a text pomocí SED v Linuxu

Krok 1
Dalším úkolem, který lze použít se sed, je vložení nových řádků a textu do souboru, v tomto případě máme následující data:

ZVĚTŠIT

Krok 2
Můžeme vložit nový řádek, pod kterým bude vložen:

 sed ' / Ub / a -> Vloženo!' Solvetic.txt

ZVĚTŠIT

Krok 3
Je také možné použít příkaz Vložit (i) k vložení nového řádku nad shodu:

 sed ' / Wi / i -> Vloženo!' Solvetic.txt

ZVĚTŠIT

Krok 4
Můžeme použít znak ampersand (&), abychom mohli přidat nový text na odpovídající řádek v souboru, provedeme:

 sed 's /.*/--> Vloženo & /' Solvetic.txt

ZVĚTŠIT

6. Jak odstranit řádek pomocí SED Linux


V tomto případě musíme použít parametr d (smazat), abychom odstranili například druhý řádek, který spustíme:
 sed '2d' Solvetic.txt

ZVĚTŠIT

V případě potřeby můžeme rozsah odebrat:

 sed '1,4d' Solvetic.txt
Chcete -li odstranit čáry mimo rozsah, musíme použít vykřičník (!) Takto:
 sed '2,4! d' Solvetic.txt

7. Jak uložit změny pomocí SED v Linuxu

Krok 1
Chcete-li aplikovat provedené změny, je možné použít volbu Na místě (-i), aby sed mohl zapsat změny do původního souboru, ale pro větší bezpečnost můžeme přidat záložní příponu následovně (zazálohovali jsme řádky obsahující slovo Wi):

 sed -i'.bak '' /^.*Wi.*$/d 'Solvetic.txt
Uvádíme obsah:
 kočka Solvetic.txt.bak

ZVĚTŠIT

Krok 2
Je možné přesměrovat výstup do nového souboru se stejnými výsledky:

 sed -i'.bak '' /^.*Wi.*$/d 'Solvetic.txt> Solvetic1.txt

ZVĚTŠIT

Se sedem můžeme v Linuxu pracovat se soubory zcela kompletně, protože jsme viděli všechny jeho možnosti použití.

wave wave wave wave wave