sed Komento korvata tiedoston merkkijono

Sed Command Replace String File



Aina kun työskentelemme minkäänlaisten tiedostojen kanssa, on hyvin yleinen käytäntö tehdä muutoksia tiedostoihin etsimällä ja korvaamalla sanoja. Useimmat tekstieditorit tarjoavat erilaisia ​​GUI -pohjaisia ​​menetelmiä näiden muutosten suorittamiseksi. Joskus tarvitset kuitenkin tavan löytää ja korvata sanat tiedostossa päätelaitteen kautta. Siksi tässä artikkelissa käymme läpi menetelmän, jolla sed -komento korvataan tekstitiedoston merkkijonolla. Tulemme myös valaisemaan eri skenaarioita, joissa tätä komentoa voidaan käyttää.

Huomautus: Käytämme Linux Mint 20: tä osoittamaan sed -komennon käyttöä tiedoston merkkijonon korvaamiseen. Voit halutessasi käyttää myös mitä tahansa muuta Linux -makua.







Sed -komennon käyttö:

Nyt näytämme sinulle erittäin mielenkiintoisia esimerkkejä kuvaamaan sed -komennon käyttöä Linuxissa. Katsotaanpa, kuinka tämä komento toimii eri tilanteissa.



Tekstitiedoston luominen esittelyä varten:

Sed -komennon käytön osoittamiseksi haluamme työskennellä tekstitiedoston kanssa. Voit kuitenkin jopa luoda Bash -tiedoston tai minkä tahansa muun valitsemasi tiedoston. Toiseksi luomme tiedoston kotihakemistoon, jotta meidän ei tarvitse määrittää monimutkaisia ​​polkuja käyttäessämme tätä tiedostoa. Tekstitiedoston luomiseksi on suoritettava seuraavat vaiheet:



Napsauta Tiedostonhallinta -kuvaketta Linux Mint 20 -tehtäväpalkissa:





Luo nyt uusi tekstitiedosto Koti-hakemistoon napsauttamalla hiiren kakkospainikkeella mitä tahansa kohtaa siellä ja valitsemalla sitten Uusi dokumentti -vaihtoehto kaskadivalikosta ja Tyhjennä asiakirja -vaihtoehto alipakkausvalikosta. Kun tekstitiedosto on luotu, anna sille sopiva nimi. Tässä nimenomaisessa esimerkissä olen nimennyt sen sed.txt -tiedostona.



Avaa tiedosto kaksoisnapsauttamalla sitä ja kirjoita siihen satunnainen teksti alla olevan kuvan mukaisesti. Tallenna tämä tekstitiedosto painamalla Ctrl +S ja sulje se.

Käynnistä nyt pääte Linux Mint 20: ssä seuraavan kuvan mukaisesti:

Kun olet käynnistänyt päätelaitteen Linux Mint 20: ssä, voit käydä läpi kaikki alla mainitut esimerkit yksi kerrallaan.

Sed -komennon käyttäminen tietyn sanan kaikkien esiintymien korvaamiseen:

Sed -komennolla voit korvata kaikki tietyn sanan esiintymät tekstitiedostossa. Tämän tavoitteen saavuttamisen syntaksi on mainittu alla:

$sed’S/sed/FindWord/Korvaa sana/'Tiedosto.txt

Tässä sinun on korvattava FindWord sanalla, jonka haluat korvata, ja ReplaceWord korvattavalla sanalla. Lisäksi sinun on myös korvattava tiedosto sen tiedoston nimellä, johon haluat tehdä nämä korvaukset. Tässä skenaariossa olen korvannut FindWordin sedillä ja ReplaceWordin korvaamalla. Tiedostomme nimi oli sed.txt. Se näkyy myös seuraavassa kuvassa:

Tämän komennon onnistunut suorittaminen näyttää muutokset, jotka ovat tapahtuneet tämän komennon suorittamisen jälkeen päätelaitteessasi:

Sed -komennon käyttäminen annetun sanan n: nnen esiintymisen korvaamiseen jokaisella rivillä:

Yllä oleva skenaario oli yksinkertaisin korvausskenaario, mutta toisinaan et halua korvata kaikkia sanan esiintymiä, vaan haluat korvata vain sanan ensimmäisen, toisen tai n: n kerran kaikissa riveissä. Tätä varten voit suorittaa seuraavan komennon:

$sed’S/FindWord/Korvaa sana/numero 'file.txt

Tässä sinun on korvattava FindWord sanalla, jonka haluat korvata, ja ReplaceWord korvattavalla sanalla. Lisäksi sinun on myös korvattava tiedosto sen tiedoston nimellä, johon haluat tehdä nämä korvaukset. Tässä skenaariossa olen korvannut FindWordin korvaamisen ja ReplaceWordin tilalla sed. Tiedostomme nimi oli sed.txt. Numero viittaa myös korvattavan sanan esiintymiseen tai sijaintiin. Esitetyssä esimerkissä haluan korvata ensimmäisen korvauksen esiintymisen sedillä jokaisella rivillä alla olevan kuvan mukaisesti:

Tämän komennon onnistunut suorittaminen näyttää muutokset, jotka ovat tapahtuneet tämän komennon suorittamisen jälkeen päätelaitteessasi:

Sed -komennon käyttäminen tietyn sanan korvaamiseen tietyllä rivillä:

Joskus haluat korvata vain tietyn sanan tietyllä rivillä etkä koko asiakirjassa. Tätä varten sinun on nimenomaisesti määritettävä kyseinen rivinumero seuraavassa komennossa:

$sed'LineNum s/FindWord/Korvaa sana/'Tiedosto.txt

Tässä sinun on korvattava FindWord sanalla, jonka haluat korvata, ja ReplaceWord korvattavalla sanalla. Lisäksi sinun on myös korvattava tiedosto sen tiedoston nimellä, johon haluat tehdä nämä korvaukset. Tässä tilanteessa olen korvannut FindWord sedin ja ReplaceWordin korvaamalla. Tiedostomme nimi oli sed.txt. Sinun on myös korvattava LineNum sen rivin rivinumerolla, jolla haluat tehdä korvauksen. Tässä esimerkissä halusimme korvata sedin korvaamalla tiedoston rivillä 2 seuraavan kuvan mukaisesti:

Tämän komennon onnistunut suorittaminen näyttää muutokset, jotka ovat tapahtuneet tämän komennon suorittamisen jälkeen päätelaitteessasi. Voit helposti tarkistaa, että mainitut muutokset ovat tapahtuneet vain tiedostomme rivillä 2, eivät koko tekstissä.

Johtopäätös:

Aina kun tunnet tarvetta korvata jokin tiedoston sana, ensimmäinen asia, joka sinun on tehtävä, on tunnistaa erityinen vaatimus eli haluatko korvata kyseisen nimen koko tiedostossa vai haluatko korvata tietyn sanan esiintymän sanan tai haluat korvata sen tietyllä rivillä. Kun olet tunnistanut skenaariosi, voit käyttää kyseistä menetelmää tässä artikkelissa käsitellyistä esimerkeistä.