Eden od uporabnih in zmogljivih ukazov Linuxa je ukaz sed. Ta ukaz se uporablja za izvajanje različnih vrst nalog v Linuxu, na primer vstavljanje, posodabljanje in brisanje določenega besedila ali vrstice na podlagi ujemanja. Besedilo v niz ali datoteko lahko vstavite na različne načine z ukazom sed.
Kako vstaviti vrstico po iskanju ujemanja v nizu ali vrstici, je prikazano v tej vadnici.
Vnesite vrstico v niz
Novo vrstico lahko vnesete za katero koli vrednostjo niza z ukazom sed, če se vzorec, definiran v ukazu, ujema s katerim koli delom vrednosti niza.
Naslednji primer prikazuje, kako je mogoče dodati novo vrstico po vrednosti niza, če določen niz obstaja kjer koli v vrednosti niza.
Primer-1: Vstavite vrstico v niz po iskanju ujemanja
Naslednji ukaz bo iskal inng v nizu, všeč mi je programiranje in vrstica besedila. Ali vam je všeč programiranje? bo vstavljen za niz, če iskalni niz obstaja.
Tu se znak & uporablja za vstavljanje vrstice za nizom.
$vrgel ven 'Všeč mi je programiranje.' | sed 's / inng / & Ali vam je všeč programiranje? /'Naslednji izhod kaže, da inng ne obstaja v nizu in za nizom ni vstavljena nobena vrstica.
Naslednji ukaz bo iskal ing. v nizu mi je všeč programiranje in obstaja v nizu.
Naslednji izhod prikazuje, da je nova vrstica dodana za nizom.
Vstavite vrstico v datoteko
Obstajata dva načina za vstavljanje vrstice, potem ko je ujemanje v datoteki, ki je navedena spodaj. Ko uporabite ukaz sed brez možnosti -i, bo vsebina datoteke ostala nespremenjena, izhod pa bo prikazal vsebino datoteke z vstavljeno novo vrstico. Če želite v datoteko vnesti novo vrstico, morate z ukazom sed uporabiti možnost -i.
A. Uporaba a v ukazu sed
A se lahko uporabi v iskalnem vzorcu sed za dodajanje ene ali več vrstic v datoteko po vrstici, kjer se ujema vzorec iskanja, ali po določeni številki vrstice.
B. Z uporabo i v ukazu sed
I lahko uporabite v iskalnem vzorcu ukaza sed za vstavljanje ene ali več vrstic v datoteko pred vrstico, kjer se iskalni vzorec ujema.
V datoteko vstavite vrstice na podlagi vzorca:
Ustvarite besedilno datoteko, ločeno z zavihki, z imenom products.txt z naslednjo vsebino za prikaz uporabe zgornje zastave v ukazu sed.
products.txt
ID ID01 Stepena smetana
02 Kakavov prah
03 Sladkor
04 jajce
05 Moka
Primer 2: Vnesite vrstico za določeno številko vrstice z uporabo a
Naslednji ukazi prikazujejo, kako je mogoče po določeni številki vrstice datoteke products.txt dodati novo vrstico na podlagi vzorca, uporabljenega v ukazu sed.
Tu bo prvi ukaz prikazal obstoječo vsebino datoteke. Ukaz sed bo po prvih dveh vrsticah datoteke dodal besedilo, b01 Pecilni prašek. Zadnji ukaz se uporablja za preverjanje, ali je vsebina datoteke spremenjena ali ne.
$mačkaproducts.txt$sed '2 a b01 t Pecilni prašek'products.txt
$mačkaproducts.txt
Po zagonu zgornjega ukaza se prikaže naslednji izhod.
Primer 3: Vstavite vrstico za zadnjo vrstico z uporabo a
Naslednji ukaz prikazuje način dodajanja nove vrstice po zadnji vrstici datoteke. Prvi in zadnji ukaz prikazuje obstoječo vsebino datoteke pred in po izvedbi ukaza sed. Simbol $ se uporablja v vzorcu ukaza sed za omembo zadnje vrstice datoteke.
$mačkaproducts.txt$sed '$ a b01 t Pecilni prašek'products.txt
$mačkaproducts.txt
Po zagonu zgornjega ukaza se prikaže naslednji izhod.
Primer 4: Vstavite vrstico kjer koli v datoteki, potem ko ujemate vzorec s pomočjo a
Naslednji ukaz sed prikazuje, kako je mogoče na podlagi ujemajočega se vzorca dodati novo vrstico kjer koli v datoteki. Vzorec, uporabljen v ukazu sed, bo iskal po vseh vrsticah, ki se začnejo s s01, in po njem dodal nov niz. Četrta vrstica datoteke se začne s s01, nova vrstica pa bo vstavljena za to vrstico.
$mačkaproducts.txt$sed '/^s01.*/a b01 tPecilni prašek'products.txt
$mačkaproducts.txt
Po zagonu ukaza se prikaže naslednji izhod.
Naslednji ukaz sed bo iskal vsako vrstico, ki se konča s Powder, in za njo vstavil novo vrstico. Tretja vrstica datoteke se konča s praškom. Nova vrstica bo torej vstavljena za to vrstico.
$sed '/Powder $/a b01 tPecilni prah'products.txt
$mačkaproducts.txt
Po zagonu zgornjih ukazov se prikaže naslednji izhod.
Primer 5: Vstavite več vrstic po ujemajočem se vzorcu z uporabo
Naslednji ukaz sed prikazuje način dodajanja več vrstic v vsebino datoteke na podlagi ujemajočega se vzorca.
Tu se po tretji vrstici dodata dve vrstici, glede na vzorec.
$mačkaproducts.txt$sed '/^[a-c]/a b01 t pecilni prašek nb02 t pecilni soda'products.txt
$mačkaproducts.txt
Po zagonu zgornjih ukazov se prikaže naslednji izhod.
Primer-6: po ujemanju vzorca s črko I vnesite vrstico
$mačkaproducts.txt$sed '/cream/i b01 tPecilni prašek'products.txt
$mačkaproducts.txt
Po zagonu zgornjih ukazov se prikaže naslednji izhod.
Primer -7: trajno vnesite vrstico po ujemajočem se vzorcu z možnostjo -i
Naslednji ukaz sed prikazuje, kako trajno spremeniti vsebino datoteke. Možnost i se uporablja z ukazom sed za vstavljanje nove vrstice v datoteko na podlagi vzorca.
$mačkaproducts.txt$sed -jaz '/e $/a g01 tGi'products.txt
$mačkaproducts.txt
Po zagonu zgornjih ukazov se prikaže naslednji izhod.
Zaključek:
Načini vstavljanja dveh ali več vrstic v datoteko z uporabo ukaza sed z vzorcem so bili prikazani v tej vadnici, da bi bralcu pomagali uporabiti ta ukaz za začasno ali trajno vstavljanje vrstic na podlagi vzorca.