sed

Kuinka korvata useita rivejä 'sed' -komennolla

Kuinka korvata useita rivejä 'sed' -komennolla
Joskus se vaatii useiden tiedostorivien korvaamisen tietyllä merkillä tai tekstillä. Linuxissa on erilaisia ​​komentoja korvaamaan tiedoston useita rivejä. 'sed' -komento on yksi heistä tämäntyyppisten tehtävien suorittamiseen. 'Sedin' koko 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. Kuinka tätä komentoa voidaan käyttää korvaamaan tiedoston useita rivejä eri tavoin, selitetään tässä opetusohjelmassa.

Yleisesti käytetty sed-huijausarkki:

Sed-komennossa yleisimmin käytetyt merkit selitetään seuraavassa taulukossa.

Merkki Tarkoitus
a Sitä käytetään sisällön lisäämiseen.
b Sitä käytetään sisällön haaroittamiseen.
c Sitä käytetään sisällön muuttamiseen.
d Sitä käytetään tiedostorivin poistamiseen.
D Sitä käytetään tiedoston ensimmäisen rivin poistamiseen.
g Sitä käytetään kopioimaan pitotekstistä.
G Sitä käytetään liittämään pitotekstistä.
h Sitä käytetään kopioimaan pitoteksti.
H Sitä käytetään liittämään pitotekstiin.
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.
q Sitä käytetään lopettamiseen.
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 korvaamattomuuden testaamiseen.
w Sitä käytetään tiedostoon kirjoittamiseen.
W Sitä käytetään rivin kirjoittamiseen tiedostoon.
x Sitä käytetään kuvioiden vaihtamiseen ja pitämiseen.
y Sitä käytetään kääntämään.
z Sitä käytetään viivan tyhjentämiseen.
'=' Sitä käytetään rivinumeron tulostamiseen.

Korvaa useita rivejä käyttämällä päätelaitteen sed komentoa:

Kuinka 'sed' -komentoa voidaan käyttää korvaamaan terminaalin tiedoston useita rivejä, on tämän opetusohjelman tässä osassa. Luo tiedosto nimeltä sed.txt seuraavalla sisällöllä testaa tämän osan komennot.

sed.txt

Sedin koko muoto on "stream editor".

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ä riviä

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

$ kissa sed.txt
$ sed -z 's / Sen on kehittänyt Lee E. McMahon.\ nSitä käytetään tekstiin
käsittely./ 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 '.

$ kissa sed.txt
$ sed 's / ^ Se.* / Tämä rivi korvataan / g 'sed.txt

Seuraava tulos tulee näkyviin komentojen suorittamisen jälkeen. Kolme riviä sisältää sanan ''Se"tiedostossa. Joten nämä rivit on 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 '.

$ kissa sed.txt
$ sed 'n; / is / s / is / was / sed.txt

Seuraava tulos tulee näkyviin komentojen suorittamisen jälkeen. Tässä, 'On' on olemassa 2nd ja 4th tiedoston rivit, ja sana muokkaa näitä rivejä 'oli'.

Korvaa useita rivejä luomalla sed-komentosarjatiedosto:

Aikaisemmissa esimerkeissä 'sed' -komennot on suoritettu päätelaitteelta. Mutta se on komentosarjakieli, ja jos komentosarja sisältää useita lauseita, on parempi luoda sed-tiedosto komentosarjan kanssa. Luo tekstitiedosto nimeltä opiskelijoille.txt seuraavan sisällön kanssa, jossa 'sed' -komentosarjaa käytetään.

opiskelijoille.txt

ID: 111045
Nimi: Robert
Osasto: CSE
Erä: 35
ID: 111876
Nimi: Joseph
Laitos: BBA
Erä: 27
ID: 111346
Nimi: William
Osasto: CSE
Erä: 45
ID: 111654
Nimi: Charles
Osasto: Sähkö- ja elektroniikkalaitteet
Erä: 41
ID: 111346
Nimi: John
Osasto: CSE
Erä: 25
ID: 111746
Nimi: Thomas
Osasto: CSE
Erä: 15

Esimerkki 4: Korvaa tiedoston useita rivejä Sed-komentotiedostolla

Luo sed-tiedosto nimeltä korvata.sed seuraavalla sisällöllä korvaamaan useita rivejä hakumallin perusteella. Tässä sana 'Täsmähakukone'haetaan tekstitiedostosta, ja jos vastaavuus on olemassa, se etsii taas numeroita 35 ja 15. Jos tiedostossa on toinen osuma, se korvataan numerolla 45.

korvata.sed

/ Täsmähakukone /
p; n;
/ 35 /
s / 35/45 /;
p; d;

/ 15 /
s / 15/55 /;
p; d;


p;

Suorita seuraava komento tarkistaaksesi tiedoston olemassa olevan sisällön. CSE ilmestyi neljä kertaa tekstitiedostoon. 35 ja 15 ovat olemassa kahdessa paikassa.

$ kissaopiskelijoita.txt

Seuraava komento korvaa usean rivin sisällön sed-komentosarjan perusteella.

$ sed -n -f korvaa.sed opiskelijat.txt

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

Johtopäätös

Tässä opetusohjelmassa on esitetty useita tapoja korvata useita rivejä tai useiden rivien sisältö käyttämällä 'sed' -komentoa. Kuinka 'sed' -komentosarja voidaan suorittaa sed-tiedostosta, näkyy myös tässä opetusohjelmassa. Toivon, että tämä opetusohjelma auttaa lukijaa korvaamaan minkä tahansa tiedoston useita rivejä käyttämällä 'sed' -komentoa.

Top 10 Games to Play on Ubuntu
Windows platform has been one of the dominating platforms for gaming because of the huge percentage of games that are developing today to natively sup...
5 parasta arcade-peliä Linuxille
Nykyään tietokoneet ovat vakavia koneita, joita käytetään pelaamiseen. Jos et pääse uusiin korkeisiin pisteisiin, tiedät mitä tarkoitan. Tässä viestis...
Battle For Wesnoth 1.13.6 Development Released
Battle For Wesnoth 1.13.6 released last month, is the sixth development release in the 1.13.x series and it delivers a number of improvements, most no...