Kuinka käyttää Sedia Linuxissa

Sed tarkoittaa stream editoria. Se on komentorivipohjainen editori Linuxille. sed:n suosittu käyttö on tiedostojen muokkaamiseen osana automaatiokomentosarjaa Linuxissa, koska tavalliset editorit vaativat aktiivisen käyttäjän syötteen eivätkä voi muokata tiedostoja muokkausruutujen ulkopuolella. Sed on yleisimmin käytetty etsimiseen ja korvaamiseen komentoriviltä.

Tämän tyyppinen tekstieditori voidaan myös luokitella ei-interaktiiviseksi tekstieditoriksi.

Katsotaanpa joitain yleisiä vaihtoehtoja tiedostojen muokkaamiseen Sedillä. Otetaan esimerkkinä seuraava tiedosto:

$: cat test.txt Nopea ruskea koira hyppäsi laiskan kissan yli. Linux käyttöjärjestelmä. Kotini lähellä olevassa Metsässä on sekä kissa että susia. 

Etsi ja korvaa

Jos haluat etsiä tiedostosta merkkijonoa ja korvata sen toisella merkkijonolla, suorita:

sed -i "s/cat/fox/g" test.txt

Tässä, -i lippu kehottaa sed:tä kirjoittamaan muutokset tiedostoon. Ilman tätä lippua sed näyttää vain tiedoston muuttuneella merkkijonolla.

Lainausmerkeissä meillä on s/kissa/kettu/g. The s on etsi ja korvaa -komentoa varten sed. Sitten meillä on etsittävä merkkijono, joka on kissa. Sitten merkkijono, jolla se korvataan, eli kettu. Lopuksi meillä on valinnainen g, joka ohjaa sed korvaamaan kaikki esiintymät tiedoston kaikilla riveillä. Ilman g, sed korvaa vain ensimmäisen esiintymisen kissa joka rivillä.

Regexiä voidaan käyttää myös täällä.

sed -i "s/f[a-z]*\./cat\./g"

Lisää

Jos haluat lisätä tekstiä ennen riviä, jolla on vastaava merkkijono, käytä:

sed -i "/cat/i Start:" test.txt

Tässä, kissa on haettu merkkijono ja Alkaa: on merkkijono, joka syötetään ennen riviä, josta etsitty merkkijono löytyy.

Vastaavasti voit lisätä tekstiä rivin jälkeen käyttämällä:

sed -i "/fox/a End." testi.txt

Poistaa

Jos haluat poistaa rivin, joka sisältää alimerkkijonon, käytä:

sed -i "/Linux/d" test.txt

Jos haluat poistaa rivin, jossa on rivinumero, esim. ensimmäinen rivi, käytä:

sed -i '1d' testi.txt

Useiden toimintojen yhdistäminen

Useiden toimintojen yhdistäminen, esim. etsi ja korvaa, poista, yhdellä komennolla, -e lippua saa käyttää.

sed -i -e "s/kettu/kissa/g" -e '2d' testi.txt

? Kippis!