Ako nahradiť viac riadkov pomocou príkazu `sed '

How Replace Multiple Lines Using Sed Command



Niekedy to vyžaduje nahradenie viacerých riadkov súboru akýmkoľvek konkrétnym znakom alebo textom. V systéme Linux existujú rôzne príkazy na nahradenie viacerých riadkov súboru. Príkaz `sed 'je jedným z nich, ktorý vykonáva tento typ úlohy. Úplný tvar „sed“ je Steam Editor a používa sa hlavne na čítanie a prevádzanie textu rôznymi spôsobmi pomocou regulárneho výrazu. V tomto návode je vysvetlené, ako možno tento príkaz použiť na nahradenie viacerých riadkov súboru rôznymi spôsobmi.

Bežne používaný cheat list „sed“:

Najbežnejšie používané znaky používané v príkaze `sed 'sú vysvetlené v nasledujúcej tabuľke.







Charakter Účel
do Slúži na pridávanie obsahu.
b Používa sa na vetvenie obsahu.
c Slúži na zmenu obsahu.
d Slúži na vymazanie riadka súboru.
D Slúži na vymazanie prvého riadka súboru.
g Kedysi sa kopírovalo z pozdržaného textu.
G Používa sa na pripojenie z podržaného textu.
h Slúži na kopírovanie v pozdržanom texte.
H Používa sa na pripojenie k podržanému textu.
i Slúži na vloženie.
Ja Slúži na vytlačenie náhradného riadku.
n Slúži na prechod na nasledujúci riadok.
N. Slúži na pripojenie ďalšieho vstupného riadka.
p Slúži na tlač.
P Slúži na vytlačenie prvého riadku.
čo Používa sa na ukončenie.
Q Používa sa na okamžité ukončenie.
r Slúži na čítanie súboru.
R. Slúži na čítanie riadka zo súboru.
s Používa sa ako náhrada.
t Používa sa na testovanie substitúcie.
T Používa sa na testovanie bez substitúcie.
v Slúži na zápis do súboru.
IN Slúži na zapísanie riadka do súboru.
X Slúži na výmenu vzorov a držanie.
a Slúži na preklad.
S Slúži na vyčistenie linky.
'=' Slúži na vytlačenie čísla riadku.

Nahraďte viac riadkov pomocou príkazu `sed` z terminálu:

V tejto časti tohto tutoriálu je ukázané, ako je možné príkaz „sed“ použiť na nahradenie viacerých riadkov zo súboru z terminálu. Vytvorte súbor s názvom sed.txt pomocou nasledujúceho obsahu otestujte príkazy tejto časti.



sed.txt



Úplná forma sed je editor streamov.





Je to unixový nástroj, ktorý sa používa na čítanie a prevádzanie textu v inom formáte.

Bol vyvinutý spoločnosťou Lee E. McMahon.



Slúži na spracovanie textu.

Podporuje regulárne výrazy.

Príklad 1: Vymeňte dve po sebe idúce čiary

Nasledujúci príkaz „sed“ nahradí dva po sebe nasledujúce riadky iným riadkom. Tu sa voľba -z používa na nahradenie po sebe nasledujúcich riadkov nulovými údajmi pred pridaním náhradného textu. Podľa príkazu 3rda 4thriadky súboru budú nahradené textom, „Je to veľmi užitočný nástroj“ .

$katsed.txt
$sed -S 's/Vyvinul ho Lee E. McMahon. nPoužíva sa na text
spracovanie./Je to veľmi užitočný nástroj./'
sed.txt

Po spustení príkazov sa zobrazí nasledujúci výstup.

Príklad 2: Nahradenie viacerých riadkov na základe zhody a globálneho príznaku

Nasledujúci príkaz „sed“ nahradí všetky riadky, ktoré začínajú slovom, 'To' slovom „ Tento riadok je nahradený '.

$katsed.txt
$sed 's/^It.*/Tento riadok je nahradený/g'sed.txt

Po spustení príkazov sa zobrazí nasledujúci výstup. Tri riadky obsahujú slovo „ To „V súbore. Tieto riadky boli teda nahradené náhradným textom.

Príklad 3: Nahradenie viacerých riadkov na základe príkazu zhody a nasledujúceho riadku

Nasledujúci príkaz „sed“ nahradí slovo „ je „Slovom“ bol ‘Príkazom v nasledujúcom riadku‘ n ’.

$katsed.txt
$sed '{n;/is/{s/is/was/}}'sed.txt

Po spustení príkazov sa zobrazí nasledujúci výstup. Tu, 'je' existuje v 2nda 4thriadky súboru a tieto riadky sú upravené slovom „Bol“ .

Nahraďte viac riadkov vytvorením súboru skriptu `sed ':

V predchádzajúcich príkladoch boli príkazy `sed` vykonané z terminálu. Je to však skriptovací jazyk a ak skript obsahuje viac príkazov, je lepšie vytvoriť pomocou skriptu súbor sed. Vytvorte textový súbor s názvom students.txt s nasledujúcim obsahom, v ktorom bude použitý skript `sed '.

students.txt

ID: 111045
Meno: Robert
Oddelenie: CSE
Dávka: 35

ID: 111876
Meno: Jozef
Pracovisko: BBA
Dávka: 27

ID: 111346
Meno: William
Oddelenie: CSE
Dávka: 45

ID: 111654
Meno: Charles
Oddelenie: EEE
Dávka: 41

ID: 111346
Meno: John
Oddelenie: CSE
Dávka: 25

ID: 111746
Meno: Thomas
Oddelenie: CSE
Dávka: 15

Príklad 4: Nahradenie viacerých riadkov súboru pomocou súboru skriptu „sed“

Vytvorte súbor sed s názvom nahradiť.sed s nasledujúcim obsahom, ktorý nahradí viac riadkov na základe vzoru vyhľadávania. Tu slovo „ CSE „Sa vyhľadá v textovom súbore a ak zhoda existuje, potom znova vyhľadá čísla 35 a 15. Ak v súbore existuje druhá zhoda, bude nahradená číslom 45.

nahradiť.sed

/CSE/ {
p; n;
/35/ {
s/35/Štyri, päť/;
p; d;
}
/pätnásť/ {
s/pätnásť/55/;
p; d;
}
}
p;

Spustením nasledujúceho príkazu skontrolujete existujúci obsah súboru. „CSE“ sa v textovom súbore objavil štyrikrát. 35 a 15 existujú na dvoch miestach.

$katstudents.txt

Nasledujúci príkaz nahradí obsah viacerých riadkov na základe skriptu sed.

$sed -n -fnahradiť.sed študenti.txt

Po spustení príkazu sa zobrazí nasledujúci výstup.

Záver

V tomto návode boli ukázané rôzne spôsoby nahradenia viacerých riadkov alebo obsahu viacerých riadkov pomocou príkazu `sed '. V tomto návode je tiež ukázané, ako je možné skript `sed 'spustiť zo súboru sed. Dúfam, že tento návod pomôže čitateľovi nahradiť viac riadkov ľubovoľného súboru pomocou príkazu `sed`.