sed

Jak vložit řádek po zápase pomocí 'sed'?

Jak vložit řádek po zápase pomocí 'sed'?

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.

$ echo „Mám rád programování."| sed 's / ing./ & Máte rádi programování?/ '

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éno
01 Š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.

$ kočičí výrobky.txt
$ 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.

Hry Nejlepší hry z příkazového řádku pro Linux
Nejlepší hry z příkazového řádku pro Linux
Příkazový řádek není při používání Linuxu jen vaším největším spojencem - může být také zdrojem zábavy, protože jej můžete použít k hraní mnoha zábavn...
Hry Nejlepší aplikace pro mapování gamepadu pro Linux
Nejlepší aplikace pro mapování gamepadu pro Linux
Pokud rádi hrajete hry na Linuxu s gamepadem místo typického vstupního systému pro klávesnici a myš, máte k dispozici několik užitečných aplikací. Mno...
Hry Užitečné nástroje pro hráče Linuxu
Užitečné nástroje pro hráče Linuxu
Pokud rádi hrajete hry na Linuxu, je pravděpodobné, že jste ke zlepšení herního zážitku použili aplikace a nástroje jako Wine, Lutris a OBS Studio. Kr...