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.txtKrok 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.txtKrok 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.txtV 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.txtV 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.txtPokud chceme, aby nerozlišovala malá a velká písmena, přidáme „i“:
sed -n 's / úkoly / akce / gpi' Solvetic.txtKrok 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.txtHvě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.txtRozdí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/ passwdDalší 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.txtChcete -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.txtUvá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í.