Kuinka lisätä rivi ottelun jälkeen käyttämällä 'sed'?

How Insert Line After Match Using Sed



Yksi hyödyllisistä ja tehokkaista Linux -komennoista on sed -komento. Tätä komentoa käytetään erilaisten tehtävien suorittamiseen Linuxissa, kuten tietyn tekstin tai rivin lisääminen, päivittäminen ja poistaminen ottelun perusteella. Voit lisätä tekstin merkkijonoon tai tiedostoon eri tavoin käyttämällä sed -komentoa.

Tässä opetusohjelmassa näytetään rivin lisääminen sen jälkeen, kun merkkijono tai rivi on löytynyt.







Lisää rivi merkkijonoon

Uusi rivi voidaan lisätä minkä tahansa merkkijonoarvon jälkeen sed -komennolla, jos komennossa määritelty kuvio vastaa mitä tahansa merkkijonon osaa.



Seuraava esimerkki osoittaa, kuinka uusi rivi voidaan lisätä merkkijonon arvon jälkeen, jos tietty merkkijono on missä tahansa merkkijonon arvossa.



Esimerkki 1: Lisää rivi merkkijonoon vastaavuuden löytämisen jälkeen

Seuraava komento etsii merkkijonosta, pidän ohjelmoinnista ja tekstirivistä: Pidätkö ohjelmoinnista? lisätään merkkijonon jälkeen, jos etsittävä merkkijono on olemassa.





Tässä käytetään & -merkkiä rivin lisäämiseen merkkijonon jälkeen.

$heitti pois 'Pidän ohjelmoinnista.' | sed 's / inng / & Pidätkö ohjelmoinnista? /'

Seuraava tulos osoittaa, että merkkijonossa ei ole inng eikä merkkijonon jälkeen ole riviä.




Seuraava komento etsii. merkkijonossa pidän ohjelmoinnista ja se on merkkijonossa.

$heitti pois 'Pidän ohjelmoinnista.' | sed 's/ing ./& Pidätkö ohjelmoinnista?/'

Seuraava tulos osoittaa, että uusi rivi lisätään merkkijonon jälkeen.

Lisää rivi tiedostoon

On kaksi tapaa lisätä rivi sen jälkeen, kun osuma löytyy alla mainitusta tiedostosta. Kun sed -komentoa käytetään ilman -i -vaihtoehtoa, tiedoston sisältö pysyy muuttumattomana ja tulostus näyttää tiedoston sisällön lisätyllä rivillä. Sinun on käytettävä -i -vaihtoehtoa sed -komennolla lisätäksesi uuden rivin pysyvästi tiedostoon, jos tiedostossa on vastaava kuvio.

A. Käyttämällä a sed -komennossa

A: ta voidaan käyttää sedin hakukuvioon lisätäksesi yhden tai useamman rivin tiedostoon sen rivin jälkeen, jossa hakukuvio vastaa, tai tietyn rivinumeron jälkeen.

B. Käyttämällä i sed -komennossa

I: tä voidaan käyttää sed -komennon hakumallissa yhden tai useamman rivin lisäämiseksi tiedostoon ennen riviä, jossa hakukuvio vastaa.

Lisää rivi (t) tiedostoon mallin perusteella:

Luo sarkaimella erotettu tekstitiedosto nimeltä products.txt seuraavan sisällön avulla, joka näyttää yllä olevan lipun käytön sed -komennossa.

products.txt

Tunnuksen nimi

01 Vatkaa kerma

02 Kaakaojauhe

03 Sokeri

04 Muna

05 Jauhot

Esimerkki 2: Lisää rivi tietyn rivinumeron jälkeen käyttämällä a

Seuraavat komennot osoittavat, kuinka uusi rivi voidaan lisätä product.txt -tiedoston tietyn rivinumeron jälkeen sed -komennossa käytetyn mallin perusteella.

Tässä ensimmäinen komento näyttää tiedoston nykyisen sisällön. Sed -komento lisää tekstin, b01 Leivinjauhe, tiedoston kahden ensimmäisen rivin jälkeen. Viimeistä komentoa käytetään tarkistamaan, onko tiedoston sisältö muuttunut vai ei.

$kissaproducts.txt

$sed '2 a b01 tLeivojauhe'products.txt

$kissaproducts.txt

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

Esimerkki 3: Lisää rivi viimeisen rivin jälkeen käyttämällä a

Seuraava komento näyttää tavan lisätä uusi rivi tiedoston viimeisen rivin jälkeen. Ensimmäinen ja viimeinen komento näyttää tiedoston nykyisen sisällön ennen sed -komennon suorittamista ja sen jälkeen. $ -Merkkiä käytetään sed -komennon mallissa tiedoston viimeisen rivin mainitsemiseksi.

$kissaproducts.txt

$sed '$ a b01 t Leivinjauhe'products.txt

$kissaproducts.txt

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

Esimerkki 4: Lisää rivi mihin tahansa tiedostoon sen jälkeen, kun olet löytänyt kuvion a-painikkeella

Seuraava sed -komento näyttää, kuinka uusi rivi voidaan lisätä mihin tahansa tiedostoon vastaavan kuvion perusteella. Sed -komennossa käytetty malli etsii mitä tahansa riviä, joka alkaa s01: stä, ja lisää sen jälkeen uuden merkkijonon. Tiedoston neljäs rivi alkaa numerolla s01, ja uusi rivi lisätään sen jälkeen.

$kissaproducts.txt

$sed '/^s01.*/a b01 tLeivinjauhe'products.txt

$kissaproducts.txt

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


Seuraava sed -komento etsii kaikki rivit, jotka päättyvät Powderiin, ja lisää uuden rivin sen jälkeen. Tiedoston kolmas rivi päättyy jauheeseen. Joten uusi rivi lisätään sen jälkeen.

$kissaproducts.txt

$sed '/Jauhe $/a b01 tLeivinjauhe'products.txt

$kissaproducts.txt

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

Esimerkki 5: Lisää useita rivejä vastaavan kuvion jälkeen käyttämällä

Seuraava sed -komento näyttää tavan lisätä useita rivejä tiedoston sisältöön vastaavan kuvion perusteella.

Tässä lisätään kaksi riviä kolmannen rivin jälkeen mallin mukaisesti.

$kissaproducts.txt

$sed '/^[a-c]/a b01 tLeivojauhe nb02 tLeivasooda'products.txt

$kissaproducts.txt

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

Esimerkki-6: Lisää rivi sen jälkeen, kun olet löytänyt kuvion I-painikkeella

$kissaproducts.txt

$sed '/cream/i b01 tLeivinjauhe'products.txt

$kissaproducts.txt

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

Esimerkki 7: Lisää rivi pysyvästi vastaavan kuvion jälkeen käyttämällä -i -vaihtoehtoa

Seuraava sed -komento näyttää, kuinka tiedoston sisältöä voidaan muuttaa pysyvästi. I -vaihtoehtoa käytetään sed -komennon kanssa lisätäkseen uuden rivin tiedostoon kuvion perusteella.

$kissaproducts.txt

$sed -i '/e $/a g01 tGhee'products.txt

$kissaproducts.txt

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

Johtopäätös:

Tässä opetusohjelmassa on esitetty tapoja lisätä kaksi tai useampia rivejä tiedostoon käyttämällä sed -komentoa kuvion avulla, jotta lukija voi soveltaa tätä komentoa rivien lisäämiseen tilapäisesti tai pysyvästi kuvion perusteella.