SED-komento UNIXissa tarkoittaa stream-editoria ja se voi suorittaa tiedostossa monia toimintoja, kuten etsimisen, etsimisen ja korvaamisen, lisäämisen tai poistamisen. Vaikka yleisin SED-komennon käyttö UNIXissa on korvaaminen tai etsi ja korvaaminen. SED:n avulla voit muokata tiedostoja jopa avaamatta niitä, mikä on paljon nopeampi tapa löytää ja korvata jotain tiedostosta, kuin avata tiedosto ensin VI Editorissa ja sitten muuttaa sitä.
- SED on tehokas tekstivirtaeditori. Voi lisätä, poistaa, etsiä ja korvata (korvaaminen).
- SED-komento unixissa tukee säännöllistä lauseketta, jonka avulla se suorittaa monimutkaisen kuvion sovituksen.
Syntaksi:
sed OPTIONS... [SCRIPT] [INPUTFILE...]>
Esimerkki:
Harkitse alla olevaa tekstitiedostoa syötteenä.
$cat>geekfile.txt>>$sed 's/unix/linux/' geekfile.txt>
Lähtö:
linux is great os. unix is opensource. unix is free os. learn operating system. linux linux which one you choose. linux is easy to learn.unix is a multiuser os.Learn unix .unix is a powerful.>
Tässä s määrittää korvausoperaation. / ovat erottimet. Unix on hakumalli ja linux on korvaava merkkijono.
jotain nopeaa lajittelua
Oletusarvoisesti sed-komento korvaa kuvion ensimmäisen esiintymän jokaisella rivillä, eikä se korvaa rivin toista, kolmatta… esiintymää. Kuvion n:nnen esiintymän korvaaminen rivillä : Käytä /1, /2 jne. -lippuja korvataksesi kuvion ensimmäisen ja toisen esiintymän rivillä. Alla oleva komento korvaa sanan unix toisen esiintymän rivillä linuxilla.
$sed 's/unix/linux/2' geekfile.txt>
Lähtö:
unix is great os. linux is opensource. unix is free os. learn operating system. unix linux which one you choose. unix is easy to learn.linux is a multiuser os.Learn unix .unix is a powerful.>Kaavan kaikkien esiintymien korvaaminen rivillä: Korvauslippu /g (yleinen korvaus) määrittää sed-komennon, joka korvaa kaikki merkkijonon esiintymät rivillä.
$sed 's/unix/linux/g' geekfile.txt>
Lähtö:
mikä on lepotila
linux is great os. linux is opensource. linux is free os. learn operating system. linux linux which one you choose. linux is easy to learn.linux is a multiuser os.Learn linux .linux is a powerful.>Korvaaminen n:nnestä esiintymästä kaikkiin esiintymiin rivillä : Käytä yhdistelmää /1, /2 jne ja /g korvataksesi kaikki kuviot rivin n:nnestä esiintymisestä. Seuraava sed-komento korvaa kolmannen, neljännen, viidennen… unix-sanan linux-sanalla rivillä.
$sed 's/unix/linux/3g' geekfile.txt>
Lähtö:
unix is great os. unix is opensource. linux is free os. learn operating system. unix linux which one you choose. unix is easy to learn.unix is a multiuser os.Learn linux .linux is a powerful.>Merkitse jokaisen sanan ensimmäinen merkki sulkuihin: Tämä sed-esimerkki tulostaa jokaisen sanan ensimmäisen merkin suluissa.
$ echo 'Welcome To The Geek Stuff' | sed 's/([A-Z])/(1)/g'>
Lähtö:
(W)elcome (T)o (T)he (G)eek (S)tuff>Merkkijonon korvaaminen tietyssä rivinumerossa: Voit rajoittaa sed-komentoa korvaamaan tietyn rivinumeron merkkijono. Esimerkkinä on
$sed '3 s/unix/linux/' geekfile.txt>
Lähtö:
unix is great os. unix is opensource. unix is free os. learn operating system. linux linux which one you choose. unix is easy to learn.unix is a multiuser os.Learn unix .unix is a powerful.>
Yllä oleva sed-komento korvaa merkkijonon vain kolmannella rivillä. Korvatun rivin monistaminen /p-lipulla: /p print -lippu tulostaa korvatun rivin kahdesti päätteelle. Jos rivillä ei ole hakumallia eikä sitä korvata, /p tulostaa kyseisen rivin vain kerran.
$sed 's/unix/linux/p' geekfile.txt>
Lähtö:
linux is great os. unix is opensource. unix is free os. linux is great os. unix is opensource. unix is free os. learn operating system. linux linux which one you choose. linux linux which one you choose. linux is easy to learn.unix is a multiuser os.Learn unix .unix is a powerful. linux is easy to learn.unix is a multiuser os.Learn unix .unix is a powerful.>Vain korvattujen rivien tulostaminen: Käytä -n-vaihtoehtoa yhdessä /p print -lipun kanssa näyttääksesi vain korvatut rivit. Tässä -n-vaihtoehto estää /p-lipun luomat rivien kaksoiskappaleet ja tulostaa korvatut rivit vain kerran.
$sed -n 's/unix/linux/p' geekfile.txt>
Lähtö:
linux is great os. unix is opensource. unix is free os. linux linux which one you choose. linux is easy to learn.unix is a multiuser os.Learn unix .unix is a powerful.>
Jos käytät -n:ää yksin ilman /p:tä, sed ei tulosta mitään. Merkkijonon korvaaminen rivillä : Voit määrittää rivinumerot sed-komennolle merkkijonon korvaamiseksi.
$sed '1,3 s/unix/linux/' geekfile.txt>
Lähtö:
Android-versiohistoria
linux is great os. unix is opensource. unix is free os. learn operating system. linux linux which one you choose. unix is easy to learn.unix is a multiuser os.Learn unix .unix is a powerful.>
Tässä sed-komento korvaa rivit alueella 1-3. Toinen esimerkki on
$sed '2,$ s/unix/linux/' geekfile.txt>
Lähtö:
unix is great os. unix is opensource. unix is free os. learn operating system. linux linux which one you choose. linux is easy to learn.unix is a multiuser os.Learn unix .unix is a powerful>
Tässä $ osoittaa tiedoston viimeisen rivin. Joten sed-komento korvaa tekstin tiedoston toiselta riviltä viimeiselle riville. Rivien poistaminen tietystä tiedostosta: SED-komentoa voidaan käyttää myös rivien poistamiseen tietystä tiedostosta. SED-komentoa käytetään poistotoiminnon suorittamiseen edes avaamatta tiedostoa
Esimerkkejä:
1. Voit poistaa tietyn rivin sanomalla n tässä esimerkissä
Syntax: $ sed 'nd' filename.txt Example: $ sed '5d' filename.txt>
2. Viimeisen rivin poistaminen
Syntax: $ sed '$d' filename.txt>
3. Poistaa rivin alueelta x - y
Syntax: $ sed 'x,yd' filename.txt Example: $ sed '3,6d' filename.txt>
4. Poistaminen n:nnestä viimeiseen riviin
Syntax: $ sed 'nth,$d' filename.txt Example: $ sed '12,$d' filename.txt>
5. Kuvionsovitusviivan poistaminen
löydä iPhoneni Androidista
Syntax: $ sed '/pattern/d' filename.txt Example: $ sed '/abc/d' filename.txt>
SED-komento Linuxissa | Sarja 2