Vaihtotehtävät voidaan tehdä Linuxissa eri tavoin. 'sed' -komento on yksi tapa suorittaa korvaava tehtävä. Tätä komentoa voidaan käyttää merkkijonon tai tiedoston tekstin korvaamiseen käyttämällä eri mallia. Kuinka voit korvata kaiken vastaavan mallin jälkeen 'sed' -komennolla, näkyy tässä opetusohjelmassa.
Korvaa kaikki merkkijonon ottelun jälkeen:
Kuinka merkkijono voidaan korvata vastaavan mallin ja $ PARTITION_COLUMN perusteella, on näytetty tämän opetusohjelman tässä osiossa. Mutta tämä muuttuja toimii, jos kuvio vastaa mitä tahansa merkkijonon alussa tai keskellä olevaa sanaa. Se ei korvaa tekstiä, jos kuvio vastaa merkkijonon viimeistä sanaa.
Esimerkki 1: Korvaa kaikki ottelun jälkeen käyttämällä $ PARTITION_COLUMN
Seuraava komento hakee merkkiä "a", ja jäljellä oleva osa "a" jälkeen korvataan tekstillä, "suosittu blogisivusto". $ PARTITION_COLUMN.* käytetään määrittämään jäljellä oleva merkki merkin, a.
$ echo "LinuxHint on verkkosivusto" | sed "s / a $ PARTITION_COLUMN.* / suosittu blogisivusto / "Seuraava tulos tulee näkyviin komennon suorittamisen jälkeen. Tässä "verkkosivusto" on korvattu "suositulla blogisivustolla".
Seuraava malli etsii sanaa ''verkko"Merkkijonossa ja korvaa loput"verkko"Tekstin mukaan"suosittu blogisivusto'jos ottelu on olemassa ja'verkko'Ei ole merkkijonon viimeisen sanan osa.
Seuraava tulos tulee näkyviin komennon suorittamisen jälkeen. Tässä "verkkosivusto" on merkkijonon viimeinen sana, eikä korvausta ole tehty tästä syystä.
Esimerkki 2: Korvaa kaikki ottelun jälkeen mallilla
Seuraava komento etsii sanaa ''lyödä'globaalisti merkkijonossa ja korvaa kaikki sanalla, jos sana on merkkijonossa. 'g'Käytetään tässä globaalissa haussa.
$ echo "Pidän bash-ohjelmoinnista" | sed "s / bash.* / python-komentosarja / g "Seuraava tulos tulee näkyviin komennon suorittamisen jälkeen. Täällä 'bash' on merkkijonon keskellä, ja korvaaminen on tehty.
Korvaa kaikki tiedoston ottelun jälkeen:
Koko tietyn rivin sisältö tai useita rivejä tai tiedoston jäljellä olevia rivejä ottelun jälkeen voidaan korvata käyttämällä 'sed'-komento. Luo tekstitiedosto nimeltä läsnäolo.txt seuraavan sisällön kanssa tässä osiossa esitettyjen esimerkkien testaamiseksi.
läsnäolo.txt
1108885 on läsnä1999979 on läsnä
1769994 puuttuu
1105656 puuttuu
1455999 puuttuu
Esimerkki -3: Korvaa kaikki tiedostorivin sisältö ottelun jälkeen
Seuraava 'sed' -komento etsii tiedostosta numeroa 1769994, ja kaikki numerolla varustetut korvataan tekstillä '1586844 on läsnä', jos numero on tiedoston jossakin rivissä.
$ kissa allendence.txt$ sed "s / 1769994.* / 1586844 on läsnä / "läsnäolo.txt
Seuraava komento suoritetaan. Tässä hakunumero on tiedoston kolmannella rivillä, ja korvaaminen on tehty.
Esimerkki -4: Korvaa koko sisältö tiedoston useista riveistä ottelun jälkeen
Seuraava 'sed' -komento näyttää muuttujan $ PARTITION_COLUMN käytön korvaamaan useita rivejä tiedostosta. Komento etsii '110' tiedoston jokaisen rivin alusta ja korvaa kaiken tekstillä '110' tekstillä 'Virheellinen merkintä', josta vastaava teksti löytyy.
$ kissan läsnäolo.txt$ sed "s / ^ 110.* $ PARTITION_COLUMN.* / Virheellinen osallistuminen / "läsnäolo.txt
Seuraava tulos tulee näkyviin komentojen suorittamisen jälkeen. '110' on olemassa kahdessa rivissä tiedostoa, ja ne on korvattu korvaavalla tekstillä.
Esimerkki 5: Korvaa koko tiedoston rivin sisältö käyttämällä c-kirjainta ottelun jälkeen
Seuraavat 'sed'komento näyttää'c'korvaamaan kaiken ottelun jälkeen. Täällä,c'tarkoittaa muutosta. Komento etsii sanaa 'esittää'tiedostossa ja korvaa kaikki rivin tekstillä,'Tämä rivi korvataan', jos sana on missä tahansa tiedoston rivissä.
$ kissan läsnäolo.txt$ sed '/ present / c Tämä rivi korvataan läsnäolo.txt
Seuraava tulos tulee näkyviin komentojen suorittamisen jälkeen. Sana "läsnä" on tiedoston kahdessa ensimmäisessä rivissä, ja nämä kaksi riviä on korvattu korvaavalla tekstillä.
Esimerkki 6: Korvaa koko tiedoston rivin sisältö alku- ja loppukuvion perusteella
Joskus teksti on korvattava alku- ja loppumallin perusteella. Seuraava 'sed' -komento näyttää tavan määrittää aloitus- ja lopetuskuviot korvaamaan tiedoston rivit. Komento etsii tiedostossa olevat rivit, jotka alkavat numerolla 110 ja päättyvät sanalla "poissa" ja korvaavat kaikki sanalla "korvattu", jos kuviot vastaavat.
$ kissan läsnäolo.txt$ sed-e 's / ^ 110.* poissa $ / korvattu / g 'läsnäolo.txt
Seuraava tulos tulee näkyviin komentojen suorittamisen jälkeen. Tässä ensimmäinen ja neljäs rivi alkavat numerolla 110, mutta sana 'poissa' on vain neljännellä rivillä. Joten, tiedoston neljäs rivi on korvattu korvaavalla tekstillä.
Päätelmä:
'sed' -komento on erittäin tehokas Linux-työkalu erityyppisten tekstinkäsittelyyn liittyvien tehtävien suorittamiseen. Sovitusmalliin perustuvaa korvaustehtävää käsitellään tässä opetusohjelmassa käyttämällä erityyppisiä malleja sed-komennossa. $ PARTITION_COLUMN, 'c' ja '.* 'käytetään tässä opetusohjelmassa korvaamaan kaikki tiedoston rivit, jos vastaava malli on olemassa. Tässä on esitetty joidenkin määrittävien kuvioiden merkkien, kuten '^' ja '$', käyttö. On olemassa monia muita merkkejä, jotka määrittelevät mallin säännöllisessä lausekkeessa hakutarkoituksiin. Toivon, että tämä opetusohjelma auttaa lukijaa tuntemaan kaiken tiedostosta korvaamisen perusteet ottelun jälkeen.