Jedním z užitečných a výkonných příkazů systému Linux je příkaz „sed“. Tento příkaz se používá k provádění různých typů úkolů v systému Linux, jako je vložení, aktualizace a odstranění konkrétního textu nebo řádku na základě shody. Text do řetězce nebo souboru můžete vložit různými způsoby pomocí příkazu „sed“.
Jak vložit řádek po nalezení shody v řetězci nebo řádku je uveden v tomto kurzu.
Vložte řádek do řetězce
Nový řádek lze vložit za libovolnou hodnotu řetězce pomocí příkazu „sed“, pokud se vzor definovaný v příkazu shoduje s jakoukoli částí hodnoty řetězce.
Následující příklad ukazuje, jak lze přidat nový řádek za hodnotu řetězce, pokud konkrétní řetězec existuje kdekoli v hodnotě řetězce.
Příklad-1: Vložte řádek do řetězce po nalezení shody
Následující příkaz vyhledá „inng“ v řetězci „Líbí se mi programování“ a řádek textu „Líbí se vám programování?”Bude vložen za řetězec, pokud vyhledávací řetězec existuje.
Zde se znak „&“ používá k vložení řádku za řetězec.
$ echo „Mám rád programování."| sed / inng / & Máte rádi programování?/ 'Následující výstup ukazuje, že „inng“ v řetězci neexistuje a za řetězec není vložen žádný řádek.
Následující příkaz vyhledá „ing.„V řetězci,„ mám rád programování “a v řetězci existuje.
Následující výstup ukazuje, že nový řádek je přidán za řetězec.
Vložte řádek do souboru
Existují dva způsoby, jak vložit řádek po nalezení shody v souboru uvedeném níže. Pokud je použit příkaz „sed“ bez volby „-i“, obsah souboru zůstane nezměněn a výstup zobrazí obsah souboru s vloženým novým řádkem. Chcete-li do souboru trvale vložit nový řádek, musíte použít volbu „-i“ s příkazem „sed“, pokud v souboru existuje odpovídající vzor.
A. Pomocí „a“ v příkazu „sed“
„A“ lze použít ve vyhledávacím vzoru „sed“ k přidání jednoho nebo více řádků do souboru za řádek, kde se vyhledávací vzor shoduje, nebo za konkrétní číslo řádku.
B. Použití „i“ v příkazu „sed“
„I“ lze použít ve vyhledávacím vzoru příkazu „sed“ k vložení jednoho nebo více řádků do souboru před řádek, kde se shoduje vyhledávací vzor.
Vložte řádky do souboru podle vzoru:
Vytvořte textový soubor oddělený tabulátory s názvem produkty.txt s následujícím obsahem, který ukazuje použití výše uvedeného příznaku v příkazu „sed“.
produkty.txt
ID jméno01 Šlehačka
02 kakaový prášek
03 Cukr
04 Vejce
05 Mouka
Příklad 2: Vložte řádek za konkrétní číslo řádku pomocí „a“
Následující příkazy ukazují, jak lze přidat nový řádek za konkrétní číslo řádku produktů.Soubor txt, založený na vzoru použitém v příkazu „sed“.
Zde první příkaz zobrazí existující obsah souboru. Příkaz „sed“ za první dva řádky souboru přidá text „b01 Prášek do pečiva“. Poslední příkaz se používá ke kontrole, zda je obsah souboru změněn či nikoli.
$ kočičí výrobky.txt$ sed '2 a b01 \ tPrášek na pečení'.txt
$ kočičí výrobky.txt
Po spuštění výše uvedeného příkazu se zobrazí následující výstup.
Příklad 3: Vložte řádek za poslední řádek pomocí „a“
Následující příkaz ukazuje způsob, jak připojit nový řádek za poslední řádek souboru. První a poslední příkaz zobrazuje existující obsah souboru před a po provedení příkazu „sed“. Symbol „$“ se používá ve vzoru příkazu „sed“ ke zmínce o posledním řádku souboru.
$ kočičí výrobky.txt$ sed '$ a b01 \ tPrášek na pečení'.txt
$ kočičí výrobky.txt
Po spuštění výše uvedeného příkazu se zobrazí následující výstup.
Příklad 4: Vložte řádek kamkoli do souboru po porovnání vzoru pomocí „a“
Následující příkaz „sed“ ukazuje, jak lze přidat nový řádek kamkoli do souboru na základě shodného vzoru. Vzor použitý v příkazu „sed“ prohledá jakýkoli řádek začínající „s01“ a za něj přidá nový řetězec. Čtvrtý řádek souboru začíná na „s01“ a nový řádek bude vložen za tento řádek.
$ kočičí výrobky.txt$ sed '/ ^ s01.* / a b01 \ tPrášek na pečení.txt
$ kočičí výrobky.txt
Po spuštění příkazu se zobrazí následující výstup.
Následující příkaz „sed“ prohledá jakýkoli řádek, který končí „Powder“, a vloží za něj nový řádek. Třetí řádek souboru končí na „Powder“. Nový řádek bude tedy vložen za tento řádek.
$ sed '/ Powder $ / a b01 \ tPrášek na pečení'.txt
$ kočičí výrobky.txt
Po spuštění výše uvedených příkazů se zobrazí následující výstup.
Příklad 5: Vložte více řádků za odpovídající vzor pomocí „a“
Následující příkaz „sed“ ukazuje způsob přidání více řádků do obsahu souboru na základě shodného vzoru.
Zde budou za třetí řádek podle vzoru přidány dva řádky.
$ kočičí výrobky.txt$ sed '/ ^ [a-c] / a b01 \ t Prášek do pečiva \ nb02 \ t Výrobky na pečení'.txt
$ kočičí výrobky.txt
Po spuštění výše uvedených příkazů se zobrazí následující výstup.
Příklad 6: Vložte řádek po porovnání vzoru pomocí „I“
$ kočičí výrobky.txt$ sed '/ cream / i b01 \ tPrášek na pečení'.txt
$ kočičí výrobky.txt
Po spuštění výše uvedených příkazů se zobrazí následující výstup.
Příklad-7: Vložte řádek trvale za odpovídající vzor pomocí možnosti „-i“
Následující příkaz „sed“ ukazuje, jak trvale změnit obsah souboru. Možnost „i“ se používá s příkazem „sed“ k vložení nového řádku do souboru na základě vzoru.
$ kočičí výrobky.txt$ sed -i '/ e $ / a g01 \ tGhee' produkty.txt
$ kočičí výrobky.txt
Po spuštění výše uvedených příkazů se zobrazí následující výstup.
Závěr:
Způsoby vložení dvou nebo více řádků do souboru pomocí příkazu „sed“ se vzorem byly v tomto tutoriálu ukázány, aby pomohly čtenáři použít tento příkaz pro dočasné nebo trvalé vložení řádků na základě vzoru.