V systému Linux lze úkoly výměny provádět různými způsoby. Příkaz 'sed' je jedním ze způsobů, jak provést náhradní úlohu. Tento příkaz lze použít k nahrazení textu v řetězci nebo souboru pomocí jiného vzoru. Jak můžete nahradit vše po odpovídajícím vzoru pomocí příkazu 'sed', je uvedeno v tomto kurzu.
Nahraďte vše po zápase v řetězci:
V této části tohoto tutoriálu je ukázáno, jak lze část řetězce nahradit na základě shodného vzoru a $ PARTITION_COLUMN. Ale tato proměnná funguje, pokud se vzor shoduje s jakýmkoli slovem na začátku nebo uprostřed řetězce. Nenahradí text, pokud se vzor shoduje s posledním slovem řetězce.
Příklad 1: Po zápase vše vyměňte pomocí $ PARTITION_COLUMN
Následující příkaz vyhledá znak „a“ a zbývající část za „a“ bude nahrazena textem „populární blogová stránka“. $ PARTITION_COLUMN.* se používá k definování zbývající části za znakem, 'a'.
$ echo "LinuxHint je web" | sed "s / a $ PARTITION_COLUMN.* / populární blogová stránka / "Po spuštění příkazu se zobrazí následující výstup. Zde je „webová stránka“ nahrazena „oblíbenou webovou stránkou blogu“.
Následující vzor vyhledá slovo 'web'V řetězci a zbývající část nahraďte'web„Podle textu,“populární blogová stránka„pokud shoda existuje a“web„Není součástí posledního slova řetězce.
Po spuštění příkazu se zobrazí následující výstup. Zde je „web“ posledním slovem řetězce a z tohoto důvodu nebyla provedena žádná výměna.
Příklad 2: Nahradit vše po zápase pomocí vzoru
Následující příkaz vyhledá slovo 'bash'globálně v řetězci a nahradit vše slovem, pokud slovo v řetězci existuje. ''G'Se zde používá pro globální vyhledávání.
$ echo "Mám rád bash programování" | sed "s / bash.* / skript pythonu / g "Po spuštění příkazu se zobrazí následující výstup. Zde uprostřed řetězce existuje „bash“ a výměna byla provedena.
Nahraďte vše po zápase v souboru:
Veškerý obsah konkrétního řádku nebo více řádků nebo zbývající řádky souboru po shodě lze nahradit pomocí 'sed'příkaz. Vytvořte textový soubor s názvem účast.txt s následujícím obsahem otestovat příklady uvedené v této části.
účast.txt
1108885 je přítomen1999979 je přítomen
1769994 chybí
1105656 chybí
1455999 chybí
Příklad -3: Nahradit veškerý obsah z řádku souboru po shodě
Následující příkaz „sed“ prohledá v souboru číslo 1769994 a vše s číslem bude nahrazeno textem, „1586844 je přítomen“, pokud číslo existuje v libovolném řádku souboru.
$ kočka alendence.txt$ sed "s / 1769994.* / 1586844 je přítomen / "docházka.txt
Po spuštění příkazů se zobrazí následující výstup. Zde existuje vyhledávací číslo ve třetím řádku souboru a výměna byla provedena.
Příklad -4: Nahradit veškerý obsah z více řádků souboru po shodě
Následující příkaz 'sed' ukazuje použití proměnné $ PARTITION_COLUMN k nahrazení více řádků ze souboru. Příkaz prohledá '110' na začátku každého řádku souboru a nahradí vše '110' textem 'Neplatný záznam', kde bude nalezen odpovídající text.
$ účast koček.txt$ sed "s / ^ 110.* $ PARTITION_COLUMN.* / Neplatný vstup / „docházka.txt
Po spuštění příkazů se zobrazí následující výstup. „110“ existuje ve dvou řádcích souboru a tyto byly nahrazeny nahrazujícím textem.
Příklad 5: Nahradit veškerý obsah z řádku souboru pomocí znaku „c“ po shodě
Následující 'sed'příkaz ukazuje použití'C„nahradit vše po zápase. Tady, 'C'označuje změnu. Příkaz vyhledá slovo 'současnost, dárek„v souboru a nahradit celý řádek textem,“Tento řádek je nahrazen„pokud slovo existuje v jakémkoli řádku souboru.
$ účast koček.txt$ sed '/ present / c Tento řádek je nahrazen' docházkou.txt
Po spuštění příkazů se zobrazí následující výstup. Slovo „přítomný“ existuje v prvních dvou řádcích souboru a tyto dva řádky byly nahrazeny nahrazujícím textem.
Příklad 6: Nahradit veškerý obsah z řádku souboru na základě počátečního a koncového vzoru
Někdy je nutné nahradit text na základě počátečního a koncového vzoru. Následující příkaz 'sed' ukazuje způsob, jak definovat počáteční a koncové vzory pro nahrazení řádků ze souboru. Příkaz prohledá ty řádky v souboru, které začínají číslem 110 a končí slovem „chybí“ a nahradí vše slovem „nahrazeno“, kde se vzory shodují.
$ účast koček.txt$ sed -e '/ ^ 110.* absence $ / nahrazena / g 'docházka.txt
Po spuštění příkazů se zobrazí následující výstup. Zde první a čtvrtý řádek začínají číslem 110, ale slovo „chybí“ existuje pouze ve čtvrtém řádku. Čtvrtý řádek souboru byl tedy nahrazen nahrazujícím textem.
Závěr:
Příkaz „sed“ je velmi výkonným nástrojem systému Linux k provádění různých typů úloh souvisejících se zpracováním textu. Úloha nahrazení založená na shodném vzoru je popsána v tomto kurzu pomocí různých typů vzorů v příkazu 'sed'. $ PARTITION_COLUMN, 'c' a '.* 'se v tomto kurzu používá k nahrazení všeho řádku souboru, kde existuje odpovídající vzor. Ukázala se zde použití některých znaků definujících vzorů, například '^' a '$'. Existuje mnoho dalších znaků, které definují vzor v regulárním výrazu pro účely vyhledávání. Doufám, že tento výukový program pomůže čtenáři znát základy nahrazení všeho ze souboru po zápase.