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.
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 nimi01 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.
$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.