Kuinka korvata useita rivejä `sed '-komennolla

How Replace Multiple Lines Using Sed Command



Joskus tiedoston useita rivejä on korvattava millä tahansa merkillä tai tekstillä. Linuxissa on erilaisia ​​komentoja, jotka korvaavat tiedoston useita rivejä. 'sed' -komento on yksi heistä tämän tyyppisten tehtävien suorittamiseen. Koko sed -muoto on Steam Editor, ja sitä käytetään pääasiassa tekstin lukemiseen ja muuntamiseen eri tavoin käyttämällä säännöllistä lauseketta. Tässä oppaassa selitetään, kuinka tätä komentoa voidaan käyttää tiedoston useiden rivien korvaamiseen eri tavoin.

Yleisesti käytetty `` sed '' huijausarkki:

Seuraavassa taulukossa selitetään yleisimmin käytetyt 'sed' -komennon merkit.







Merkki Tarkoitus
kohteeseen Sitä käytetään sisällön lisäämiseen.
b Sitä käytetään sisällön haarautumiseen.
c Sitä käytetään sisällön muuttamiseen.
d Sitä käytetään tiedoston rivin poistamiseen.
D Sitä käytetään poistamaan tiedoston ensimmäinen rivi.
g Se kopioi tilan tekstistä.
G Sitä käytetään liittämiseen pitotekstistä.
h Sitä käytetään kopioimaan pitoteksti.
H Sitä käytetään liittämään pitoteksti.
i Sitä käytetään lisäykseen.
Minä Sitä käytetään korvaavan rivin tulostamiseen.
n Sitä käytetään siirtymään seuraavalle riville.
N Sitä käytetään seuraavan syöttörivin liittämiseen.
s Sitä käytetään tulostamiseen.
P Sitä käytetään ensimmäisen rivin tulostamiseen.
mitä Sitä käytetään lopettamaan.
Q Sitä käytetään lopettamaan välittömästi.
r Sitä käytetään tiedoston lukemiseen.
R Sitä käytetään rivin lukemiseen tiedostosta.
s Sitä käytetään korvaamaan.
t Sitä käytetään korvaamisen testaamiseen.
T Sitä käytetään testaamaan, ettei korvausta ole.
sisään Sitä käytetään tiedostoon kirjoittamiseen.
SISÄÄN Sitä käytetään rivin kirjoittamiseen tiedostoon.
x Sitä käytetään kuvioiden vaihtamiseen ja pitämiseen.
ja Sitä käytetään kääntämiseen.
Kanssa Sitä käytetään viivan tyhjentämiseen.
'=' Sitä käytetään rivinumeron tulostamiseen.

Korvaa useita rivejä terminaalin komennolla `sed ':

Tässä opetusohjelman osassa näytetään, kuinka `` sed '' -komentoa voidaan käyttää useiden rivien korvaamiseen tiedostosta päätelaitteesta. Luo tiedosto nimeltä sed.txt Testaa tämän osan komennot seuraavan sisällön avulla.



sed.txt



Sedin koko muoto on stream -editori.





Se on Unix -apuohjelma, jota käytetään tekstin lukemiseen ja muuntamiseen eri muodossa.

Sen on kehittänyt Lee E. McMahon.



Sitä käytetään tekstinkäsittelyyn.

Se tukee säännöllisiä lausekkeita.

Esimerkki 1: Korvaa kaksi peräkkäistä viivaa

Seuraava komento 'sed' korvaa kaksi peräkkäistä riviä toisella rivillä. Tässä vaihtoehtoa -z käytetään korvaamaan peräkkäiset rivit nollatiedoilla ennen korvaavan tekstin lisäämistä. Komennon mukaan 3rdja 4thtiedoston rivit korvataan tekstillä, 'Se on erittäin hyödyllinen työkalu' .

$kissased.txt
$sed -Kanssa 's/Sen on kehittänyt Lee E. McMahon. nSitä käytetään tekstissä
/Se on erittäin hyödyllinen työkalu.
sed.txt

Seuraava tulos tulee näkyviin komentojen suorittamisen jälkeen.

Esimerkki 2: Korvaa useita rivejä ottelun ja yleisen lipun perusteella

Seuraava `` sed '' -komento korvaa kaikki sanalla alkavat rivit, 'Se' sanalla, ' Tämä rivi korvataan ’.

$kissased.txt
$sed 's/^It.*/Tämä rivi korvataan/g'sed.txt

Seuraava tulos tulee näkyviin komentojen suorittamisen jälkeen. Kolme riviä sisältää sanan ' Se 'Tiedostossa. Nämä rivit on siis korvattu korvaavalla tekstillä.

Esimerkki 3: Korvaa useita rivejä ottelun ja seuraavan rivin komennon perusteella

Seuraava `` sed '' -komento korvaa sanan, On 'Sanalla' oli 'Seuraavan rivin komennolla' n '.

$kissased.txt
$sed '{n;/on/{s/on/oli/}}'sed.txt

Seuraava tulos tulee näkyviin komentojen suorittamisen jälkeen. Tässä, 'On' löytyy 2: statoinenja 4thtiedoston rivejä, ja sana muokkaa näitä rivejä 'Oli' .

Korvaa useita rivejä luomalla komentosarjatiedosto 'sed':

Edellisissä esimerkeissä 'sed' -komentoja on suoritettu päätelaitteesta. Mutta se on komentosarjakieli, ja jos komentosarja sisältää useita lausuntoja, on parempi luoda sed -tiedosto komentosarjalla. Luo tekstitiedosto nimeltä student.txt seuraavan sisällön kanssa, jossa `` sed '' - komentosarjaa käytetään.

student.txt

ID: 111045
Nimi: Robert
Osasto: CSE
Erä: 35

ID: 111876
Nimi: Joseph
Osasto: BBA
Erä: 27

ID: 111346
Nimi: William
Osasto: CSE
Erä: 45

ID: 111654
Nimi: Charles
Osasto: EEE
Erä: 41

ID: 111346
Nimi: John
Osasto: CSE
Erä: 25

ID: 111746
Nimi: Thomas
Osasto: CSE
Erä: 15

Esimerkki 4: Korvaa tiedoston useita rivejä komentosarjatiedostolla 'sed'

Luo sed -tiedosto, jonka nimi on korvata.käytetty seuraavalla sisällöllä korvaamaan useita rivejä hakukuvion perusteella. Tässä sana ' CSE 'Haetaan tekstitiedostosta, ja jos vastaavuus on olemassa, se etsii uudelleen numeroista 35 ja 15. Jos toinen vastaavuus on tiedostossa, se korvataan numerolla 45.

korvata.käytetty

/CSE/ {
p; n;
/35/ {
s/35/Neljä viisi/;
p; d;
}
/viisitoista/ {
s/viisitoista/55/;
p; d;
}
}
p;

Tarkista tiedoston nykyinen sisältö suorittamalla seuraava komento. CSE ilmestyi neljä kertaa tekstitiedostoon. 35 ja 15 ovat kahdessa paikassa.

$kissastudent.txt

Seuraava komento korvaa useiden rivien sisällön sed -komentosarjan perusteella.

$sed -n -fkorvata.käytetyt opiskelijat.txt

Seuraava tulos tulee näkyviin komennon suorittamisen jälkeen.

Johtopäätös

Tässä opetusohjelmassa on esitetty erilaisia ​​tapoja korvata useita rivejä tai useiden rivien sisältö 'sed' -komennolla. Tässä opetusohjelmassa esitetään myös, kuinka `` sed '' -komentosarja voidaan suorittaa sed -tiedostosta. Toivon, että tämä opetusohjelma auttaa lukijaa korvaamaan minkä tahansa tiedoston useita rivejä komennolla 'sed'.