Jak nahradit více řádků pomocí příkazu `sed`

How Replace Multiple Lines Using Sed Command



Někdy to vyžaduje nahradit více řádků souboru jakýmkoli konkrétním znakem nebo textem. V Linuxu existují různé příkazy, které nahrazují více řádků souboru. Příkaz `sed` je jedním z nich, který provádí tento typ úkolů. Plná forma `sed 'je Steam Editor a používá se hlavně ke čtení a převádění textu různými způsoby pomocí regulárního výrazu. V tomto kurzu je vysvětleno, jak lze tento příkaz použít k nahrazení více řádků souboru různými způsoby.

Běžně používaný cheat list „sed“:

Nejčastěji používané znaky používané v příkazu `sed` jsou vysvětleny v následující tabulce.







Charakter Účel
na Slouží k připojování obsahu.
b Používá se k větvení obsahu.
C Používá se pro změnu obsahu.
d Slouží k odstranění řádku souboru.
D Slouží k odstranění prvního řádku souboru.
G Dříve se kopírovalo z pozdrženého textu.
G Slouží k připojení z přidrženého textu.
h Používá se ke kopírování v pozdrženém textu.
H Slouží k připojení k přidrženému textu.
Slouží k vložení.
Slouží k tisku náhradního řádku.
n Slouží k přechodu na další řádek.
N. Slouží k připojení dalšího vstupního řádku.
p Slouží k tisku.
P Slouží k tisku prvního řádku.
co Slouží k ukončení.
Otázka Slouží k okamžitému ukončení.
r Slouží ke čtení souboru.
R. Slouží ke čtení řádku ze souboru.
s Používá se k nahrazení.
t Slouží k testování substituce.
T Používá se k testování bez náhrady.
v Slouží k zápisu do souboru.
V Slouží k zapsání řádku do souboru.
X Slouží k výměně vzorů a přidržení.
a Slouží k překladu.
S Slouží k vymazání linky.
'=' Slouží k vytištění čísla řádku.

Nahraďte více řádků pomocí příkazu `sed` z terminálu:

V této části tohoto tutoriálu je ukázáno, jak lze příkaz `sed` použít k nahrazení více řádků ze souboru z terminálu. Vytvořte soubor s názvem sed.txt s následujícím obsahem otestujte příkazy této části.



sed.txt



Úplná forma sed je editor streamu.





Jedná se o unixový nástroj, který se používá ke čtení a převodu textu v jiném formátu.

Byl vyvinut společností Lee E. McMahon.



Používá se pro zpracování textu.

Podporuje regulární výrazy.

Příklad 1: Vyměňte dvě po sobě jdoucí řádky

Následující příkaz `sed` nahradí dva po sobě jdoucí řádky jiným řádkem. Zde se volba -z používá k nahrazení po sobě jdoucích řádků nulovými daty před přidáním náhradního textu. Podle příkazu 3rda 4thřádky souboru budou nahrazeny textem, „Je to velmi užitečný nástroj“ .

$kočkased.txt
$sed -S 's/Byl vyvinut společností Lee E. McMahon. nPoužívá se pro text
zpracování./Je to velmi užitečný nástroj./'
sed.txt

Po spuštění příkazů se zobrazí následující výstup.

Příklad 2: Nahradit více řádků na základě shody a globálního příznaku

Následující příkaz `sed` nahradí všechny řádky, které začínají slovem, 'To' slovem „ Tento řádek je nahrazen '.

$kočkased.txt
$sed 's/^It.*/Tento řádek je nahrazen/g'sed.txt

Po spuštění příkazů se zobrazí následující výstup. Tři řádky obsahují slovo „ To ‘Ve spisu. Tyto řádky byly tedy nahrazeny náhradním textem.

Příklad 3: Nahraďte více řádků na základě příkazu shody a dalšího řádku

Následující příkaz `sed` nahradí slovo ' je „Podle slova“ byl ‘S příkazem dalšího řádku‘ ‘n‘.

$kočkased.txt
$sed '{n;/is/{s/is/was/}}'sed.txt

Po spuštění příkazů se zobrazí následující výstup. Tady, 'je' existuje ve 2nda 4thřádky souboru a tyto řádky jsou upraveny slovem „Byl“ .

Nahraďte více řádků vytvořením souboru skriptu `sed ':

V předchozích příkladech byly příkazy `sed` provedeny z terminálu. Je to ale skriptovací jazyk, a pokud skript obsahuje více příkazů, je lepší se skriptem vytvořit soubor sed. Vytvořte textový soubor s názvem students.txt s následujícím obsahem, ve kterém bude použit skript `sed '.

students.txt

ID: 111045
Jméno: Robert
Oddělení: CSE
Dávka: 35

ID: 111876
Jméno: Joseph
Pracoviště: BBA
Dávka: 27

ID: 111346
Jméno: William
Oddělení: CSE
Dávka: 45

ID: 111654
Jméno: Charles
Oddělení: EEE
Dávka: 41

ID: 111346
Jméno: John
Oddělení: CSE
Dávka: 25

ID: 111746
Jméno: Thomas
Oddělení: CSE
Dávka: 15

Příklad-4: Nahraďte více řádků souboru pomocí skriptového souboru `sed`

Vytvořte soubor sed s názvem vyměnit.sed s následujícím obsahem, který nahradí více řádků na základě vzoru hledání. Tady slovo „ CSE „Bude prohledáno v textovém souboru, a pokud shoda existuje, pak znovu prohledá čísla 35 a 15. Pokud v souboru existuje druhá shoda, bude nahrazena číslem 45.

vyměnit.sed

/CSE/ {
p; n;
/35/ {
s/35/Čtyři pět/;
p; d;
}
/patnáct/ {
s/patnáct/55/;
p; d;
}
}
p;

Spuštěním následujícího příkazu zkontrolujte stávající obsah souboru. „CSE“ se v textovém souboru objevilo čtyřikrát. 35 a 15 existují na dvou místech.

$kočkastudents.txt

Následující příkaz nahradí obsah více řádků na základě skriptu sed.

$sed -n -Freplace.sed students.txt

Po spuštění příkazu se zobrazí následující výstup.

Závěr

V tomto kurzu byly ukázány různé způsoby, jak nahradit více řádků nebo obsah více řádků pomocí příkazu `sed '. V tomto tutoriálu je také ukázáno, jak lze skript `sed 'spustit ze souboru sed. Doufám, že tento návod pomůže čtenáři nahradit více řádků libovolného souboru pomocí příkazu `sed '.