sed

Kuinka kaikki korvataan kuvion jälkeen käyttämällä 'sed' -komentoa

Kuinka kaikki korvataan kuvion jälkeen käyttämällä 'sed' -komentoa

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.

$ echo "LinuxHint on verkkosivusto" | sed "s / verkko.* $ PARTITION_COLUMN.* / suosittu blogisivusto / "

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.

Kuinka Xdotoolia käytetään stimuloimaan hiiren napsautuksia ja näppäilyjä Linuxissa
Xdotool on ilmainen ja avoimen lähdekoodin komentorivityökalu hiiren napsautusten ja näppäimistön simulointiin. Tässä artikkelissa käsitellään lyhyttä...
Viisi parasta ergonomista tietokonehiirtä Linux-tuotteille
Aiheuttaako pitkäaikainen tietokoneen käyttö kipua ranteessasi tai sormissasi?? Onko sinulla nivelten jäykkyys ja sinun on jatkuvasti ravistettava kät...
How to Change Mouse and Touchpad Settings Using Xinput in Linux
Most Linux distributions ship with “libinput” library by default to handle input events on a system. It can process input events on both Wayland and X...