Joskus joudut ehkä poistamaan merkkejä merkkijonosta. Mikä tahansa syy onkin, Linux tarjoaa sinulle erilaisia sisäänrakennettuja, käteviä työkaluja, joiden avulla voit poistaa merkkejä merkkijonosta Bashissa. Tässä artikkelissa kerrotaan, kuinka näiden työkalujen avulla voit poistaa merkkejä merkkijonosta.
Artikkelissa käsitellään seuraavien toimenpiteiden suorittamista:
- Poista merkki merkkijonosta käyttämällä sed
- Poista merkki merkkijonosta awk-näppäimellä
- Poista merkki merkkijonosta leikkaamalla
- Poista merkki merkkijonosta käyttämällä tr
Tässä artikkelissa esitetyt komennot suoritettiin Ubuntu 20: ssa.04 Focal Fossa. Samat komennot voidaan suorittaa myös muille Linux-jakeluille, joilla yllä olevat työkalut ovat käytettävissä. Käytämme komentojen suorittamiseen oletusarvoista Terminal-sovellusta. Pääset päätelaitteeseen Ctrl + Alt + T -näppäimistön avulla.
Poista merkit merkkijonosta käyttämällä sed
Sed on tehokas ja kätevä apuohjelma, jota käytetään tekstivirran muokkaamiseen. Se on ei-vuorovaikutteinen tekstieditori, jonka avulla voit suorittaa perustekstitiedostoja syötevirroille. Voit myös käyttää sediä poistamaan ei-toivotut merkit merkkijonoista.
Esittelytarkoituksiin käytämme esimerkkijonoa ja putketaan se sitten sed -komentoon.
Poista tietty merkki merkkijonosta
Sed-toiminnolla voit poistaa tietyn merkin merkkijonosta. Esimerkiksi, jos haluat poistaa "h" merkkijonosta "Hei, kuinka voit?”Komento olisi:
$ echo "hei, kuinka voit?"| sed 's / h //'Tämä poistaa vain merkkijonon ensimmäisen esiintymän.
Poista kaikki h: n esiintymät merkkijonosta seuraavalla komennolla:
Missä g tarkoittaa globaalia. Se poistaa kaikki h: n esiintymät merkkijonosta.
Poista ensimmäinen merkki merkkijonosta
Ensimmäisen merkin poistaminen merkkijonosta “Hei, kuinka voit?” komento olisi:
$ echo "hei, kuinka voit?"| sed 's / ^.// 'tiedostoMissä (.) vastaa täsmälleen yhtä merkkiä ja (^) vastaa mitä tahansa merkkijonon alussa olevaa merkkiä.
Poista viimeinen merkki merkkijonosta
Viimeisen merkin poistaminen merkkijonosta “Hei, kuinka voit?” komento olisi:
$ echo "hei, kuinka voit?"| sed 's /.$ // 'Missä (.) vastaa täsmälleen yhtä merkkiä ja ($) vastaa mitä tahansa merkkijonon lopussa olevaa merkkiä.
Poista ensimmäinen ja viimeinen merkki merkkijonosta
Ensimmäisen ja viimeisen merkin poistaminen merkkijonosta “Hei, kuinka voit?” komento olisi:
$ echo "hei, kuinka voit?"| sed 's / ^.//; s /.$ // '
Poista merkit merkkijonosta awk-sovelluksella
Awk on tehokas komentosarjakieli, jota käytetään kuvien sovittamiseen sekä tekstinkäsittelyyn. Awk antaa sinun suodattaa ja muuntaa tekstiä eri tavoin. Voit myös käyttää awk-näppäintä poistaaksesi merkkejä merkkijonoista.
Esittelytarkoituksiin käytämme esimerkkijonoa ja siirrämme sen sitten awk-komentoon.
Poista ensimmäinen merkki merkkijonosta
Ensimmäisen merkin poistaminen merkkijonostaHei, kuinka voit?” komento olisi:
$ echo "hei, kuinka voit?"| awk 'print substr ($ 0, 2)'Missä ($ 0) on koko kohdemerkkijono ja (2) on merkin alkupiste. Yllä oleva komento poistaa ensimmäisen merkin, 'h', merkin numeron '1' ja palauttaa kohdemerkkijonon, joka alkaa toisesta merkistä 'e.'
Poista kaksi ensimmäistä merkkiä merkkijonosta
Voit myös poistaa tietyn määrän merkkejä merkkijonon alusta. Esimerkiksi kahden ensimmäisen merkin poistaminen merkkijonostaHei, kuinka voit?” komento olisi:
$ echo "hei, kuinka voit?"| awk 'print substr ($ 0, 3)'Yllä oleva komento poistaa kaksi ensimmäistä merkkiä, 'he', tai merkkinumerot '1 ja 2' ja palauttaa kohdemerkkijonon, joka alkaa merkinumerolla '3' tai 'l.'
Poista viimeinen merkki merkkijonosta
Viimeisen merkin poistaminenHei, kuinka voit?” komento olisi:
$ echo "hei, kuinka voit?"| awk 'print substr ($ 0, 1, pituus ($ 0) -1)'Missä pituus (0 dollaria) -1 tarkoittaa vähentämistä '1'merkin kokonaispituudesta.
Yllä oleva komento tulostaa merkkijonon, joka alkaa merkin numerolla '1' aikeissa pituus (0 dollaria) -1 riisua viimeinen merkki.
On '19'merkkejä (välilyönnit mukaan lukien) yllä olevassa merkkijonossa. Komento toimii tulostamalla kaikki merkit, alkaen merkistä '1"ja luonteeseen asti"18,'samalla kun poistetaan viimeinen merkki'19.'
Poista kaksi viimeistä merkkiä merkkijonosta
Kahden viimeisen merkin poistaminenHei, kuinka voit?”Komento olisi:
$ echo "hei, kuinka voit?"| awk 'print substr ($ 0, 1, pituus ($ 0) -2)'Missä pituus (0 dollaria) -2 tarkoittaa vähentämistä '2'merkin kokonaispituudesta.
Yllä oleva komento tulostaa merkkijonon, joka alkaa merkinumerolla '1'ja merkkiin asti'pituus (0 dollaria) -2,'poistaa merkkijonon kaksi viimeistä merkkiä.
Poista sekä ensimmäinen että viimeinen merkki merkkijonosta
Sekä ensimmäisen että viimeisen merkin poistaminen merkkijonosta “Hei, kuinka voit?” komento olisi:
$ echo "hei, kuinka voit?"| awk 'print substraatti (0, 2 dollaria, pituus (0 dollaria) - 2)'Missä pituus (0 dollaria) -2 tarkoittaa vähentämistä '2'merkin kokonaispituudesta.
Yllä oleva komento tulostaa merkkijonon, joka alkaa merkinumerolla '2'merkkiin asti'pituus (0 dollaria) -2,'poistaa ensimmäisen ja viimeisen merkin.
Poista merkki merkkijonosta käyttämällä leikkausta
Leikkaa on komentorivityökalu, jota käytetään yleisesti poimimaan osa tekstistä merkkijonosta tai tiedostosta ja tulostamaan tulos vakiotulosteeseen. Voit käyttää tätä komentoa myös merkkien poistamiseen merkkijonosta.
Esittelytarkoituksiin käytämme esimerkkijonoa ja liitämme sen sitten leikkauskomentoon.
Poista ensimmäinen merkki merkkijonosta
Poista ensimmäinen merkki merkkijonosta seuraavasti:Hei, kuinka voit?” komento olisi:
$ echo "hei, kuinka voit?"| leikkaus -c 2-Tämä komento tulostaa merkkijonon, joka alkaa toisesta merkistä, samalla kun se poistaa ensimmäisen merkin.
Poista neljä ensimmäistä merkkiä merkkijonosta
Neljän ensimmäisen merkin poistaminen merkkijonosta “Hei, kuinka voit?” komento olisi:
$ echo "hei, kuinka voit?"| leikkaus -c 5-Tämä komento tulostaa merkkijonon viidennestä merkistä alkaen ja poistaa samalla neljä ensimmäistä merkkiä.
Tulosta merkkijono 2. ja 5. merkin välillä
Merkkijonon tulostaminenHei, kuinka voit?” toisen ja viidennen merkin välillä, komento olisi:
$ echo "hei, kuinka voit?"| leikkaus -c 2-5Tämä komento tulostaa merkkijonon, alkaen toisesta merkistä ja viidenteen merkkiin, samalla kun poistetaan jäljellä olevat alku- ja loppumerkit.
Poista viimeinen merkki merkkijonosta
Viimeisen merkin poistaminen merkkijonosta “Hei, kuinka voit?” Käytä leikata komento rev, seuraavasti:
$ echo "hei, kuinka voit?"| rev | cut -c2- | revTämä komento toimii kääntämällä ensin merkkijono, leikkaamalla sitten ensimmäinen merkki ja lopuksi kääntämällä se uudelleen saadaksesi halutun tuloksen.
Poista viimeiset neljä merkkiä merkkijonosta
Viimeisten neljän merkin poistaminen riviltä “Hei, kuinka voit?” komento olisi:
$ echo "hei, kuinka voit?"| rev | cut -c5- | revTämä komento toimii kääntämällä ensin merkkijono, leikkaamalla sitten neljä ensimmäistä merkkiä ja kääntämällä se sitten uudelleen saadaksesi halutun tuloksen.
Poista ensimmäinen ja viimeinen merkki merkkijonosta
Ensimmäisen ja viimeisen merkin poistaminen merkkijonosta “Hei, kuinka voit?” Käytä leikata komento rev, seuraavasti:
$ echo "hei maailma!"| leikkaa -c2- | rev | leikkaa -c2- | tarkTämä komento toimii leikkaamalla ensimmäinen merkki, kääntämällä merkkijono päinvastaiseksi ja leikkaamalla sen ensimmäinen merkki ja kääntämällä se sitten uudelleen antamaan sinulle haluttu tulos.
Poista merkki merkkijonosta käyttämällä tr
Tr-komentoa (lyhenne käännöksestä) käytetään merkkien kääntämiseen, puristamiseen ja poistamiseen merkkijonosta. Voit myös poistaa merkkejä merkkijonosta tr: n avulla.
Esittelytarkoituksiin käytämme näytemerkkijonoa ja putketaan se sitten komentoon tr.
Poista kaikki merkkien esiintymät
Komennolla tr voit poistaa merkkijonosta kaikki pienet tai isot merkit. Esimerkiksi, jos haluat poistaa kaikki pienet merkit 'h' merkkijonosta, komento olisi:
$ echo "Hei, kuinka voit?"| tr -d h
Vastaavasti kaikkien isojen merkkien 'H' esiintymien poistamiseksi merkkijonosta komento olisi:
$ echo "Hei, kuinka voit?"| tr-d HVoit käyttää tulkittuja sekvenssejä myös pienten tai isojen kirjainten poistamiseen:
$ echo "Hei, kuinka voit?"| tr -d [: ylempi:]$ echo "Hei, miten menee?"| tr -d [: alempi:]
Poista kaikki pienet ja isot kirjaimet
Voit myös poistaa merkkijonosta kaikki sekä pienet että isot merkit. Esimerkiksi seuraava komento poistaa kaikki merkin 'h' esiintymät sekä pienillä että isoilla kirjaimilla.
$ echo "Hei, kuinka voit?"| tr -d 'hH'
Poista kaikki tietyn alueen merkkien esiintymät
Jos haluat poistaa kaikki merkkien esiintymät merkkijonosta tietyllä alueella 'd-h', komento olisi:
$ echo "hei, kuinka voit?"| tr -d 'd-h'Tämä komento poistaa kaikki merkit merkkijonosta alueella d-h (d, e, f, g, h).
Johtopäätös
Linuxissa on aina useampi kuin yksi tapa suorittaa yksinkertainen työ. Sama pätee merkkien poistamiseen merkkijonosta. Tämä artikkeli esitti sinulle neljä eri tapaa tehdä niin, sekä muutama esimerkki ei-toivottujen merkkien poistamisesta merkkijonosta. Kaiken käytettävän työkalun valinta riippuu mieltymyksistäsi ja, mikä tärkeintä, siitä, mitä haluat saavuttaa.