Joskus sinun on ehkä poistettava merkkijonosta merkkejä. Olipa syy mikä tahansa, 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 kerrotaan, miten voit suorittaa seuraavat toimet:
- Poista merkki merkkijonosta käyttämällä sed
- Poista merkki merkkijonosta awk -toiminnolla
- Poista merkki merkkijonosta leikkauksella
- Poista merkki merkkijonosta käyttämällä tr
Tässä artikkelissa esitetyt komennot suoritettiin Ubuntu 20.04 Focal Fossa -ohjelmassa. Samat komennot voidaan suorittaa myös muilla Linux -jakeluilla, joilla on käytettävissä edellä mainitut työkalut. Käytämme komentojen suorittamiseen Terminal -oletussovellusta. Pääset Terminal -sovellukseen Ctrl+Alt+T -pikanäppäimellä.
Poista merkit merkkijonosta sed
Sed on tehokas ja kätevä apuohjelma, jota käytetään tekstivirtojen muokkaamiseen. Se on ei-interaktiivinen tekstieditori, jonka avulla voit suorittaa tekstin peruskäsittelyjä syöttövirroille. Voit myös käyttää sediä poistaaksesi ei -toivotut merkit merkkijonoista.
Esittelyä varten käytämme näytejonoa ja putkemme sen sitten sed -komentoon.
Poista tietty merkki merkkijonosta
Sed -toiminnon avulla voit poistaa tietyn merkin merkkijonosta. Esimerkiksi h: n poistaminen merkkijonosta Hei, kuinka voit? komento olisi:
$heitti pois 'Hei, kuinka voit?' | sed 's/h //'Tämä poistaa vain ensimmäisen h -esiintymän merkkijonosta.
Voit poistaa kaikki merkkijonon 'h' esiintymät käyttämällä seuraavaa komentoa:
$heitti pois 'Hei, kuinka voit?' | sed 's/h // g'
Missä g tarkoittaa maailmanlaajuista. Se poistaa kaikki merkkijonon 'h' esiintymät.
Poista ensimmäinen merkki merkkijonosta
Voit poistaa ensimmäisen merkin merkkijonosta Hei, kuinka voit? komento olisi:
$heitti pois 'Hei, kuinka voit?' | sed 's /^.//' tiedostoMissä (.) Vastaa täsmälleen yhtä merkkiä ja (^) vastaa mitä tahansa merkkijonon alussa olevaa merkkiä.
Poista viimeinen merkki merkkijonosta
Voit poistaa viimeisen merkin merkkijonosta Hei, kuinka voit? komento olisi:
$heitti pois '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
Voit poistaa ensimmäisen ja viimeisen merkin merkkijonosta Hei, kuinka voit? komento olisi:
$heitti pois 'Hei, kuinka voit?' | sed 's /^.//; s /.$//'
Poista merkit merkkijonosta käyttämällä awk
Awk on tehokas skriptikieli, jota käytetään kuvioiden sovittamiseen sekä tekstinkäsittelyyn. Awk: n avulla voit suodattaa ja muuntaa tekstiä eri tavoilla. Voit myös käyttää awk -merkkiä merkkien poistamiseen merkkijonoista.
Esittelytarkoituksiin käytämme näytejonoa ja johdamme sen sitten awk -komentoon.
Poista ensimmäinen merkki merkkijonosta
Voit poistaa ensimmäisen merkin merkkijonosta Hei, kuinka voit? komento olisi:
$heitti pois 'Hei, kuinka voit?' | awk '{print substr ($ 0, 2)}'Missä ($ 0) on koko kohdejono ja (2) on merkin aloituskohta. Yllä oleva komento poistaa ensimmäisen merkin 'h', merkkiluvun '1' ja palauttaa kohdamerkkijonon, joka alkaa toisella merkillä 'e'.
Poista kaksi ensimmäistä merkkiä merkkijonosta
Voit myös poistaa tietyn määrän merkkejä merkkijonon alusta. Voit esimerkiksi poistaa kaksi ensimmäistä merkkiä merkkijonosta Hei, kuinka voit? komento olisi:
$heitti pois 'Hei, kuinka voit?' | awk '{print substr ($ 0, 3)}'Yllä oleva komento poistaa kaksi ensimmäistä merkkiä, 'hän' tai merkkiluvut '1 ja 2', ja palauttaa kohdamerkkijonon, joka alkaa merkinumerolla '3' tai 'l'.
Poista viimeinen merkki merkkijonosta
Voit poistaa viimeisen merkin kohteesta Hei, kuinka voit? komento olisi:
$heitti pois 'Hei, kuinka voit?' | awk '{print substr ($ 0, 1, length ($ 0) -1)}')Missä pituus ($ 0) -1 tarkoittaa vähentämistä ' 1 'Koko merkkipituudesta.
Yllä oleva komento tulostaa merkkijonolla alkavan merkkijonon ' 1 ' aikeissa pituus ($ 0) -1 poistaa viimeisen merkin.
Siellä on ' 19 'Merkit (välilyönnit mukaan lukien) yllä olevassa merkkijonossa. Komento toimii tulostamalla kaikki merkit alkaen merkistä ' 1 'Ja luonteen mukaan' 18 , 'Poistamalla viimeisen merkin' 19 . '
Poista kaksi viimeistä merkkiä merkkijonosta
Kaksi viimeistä merkkiä poistetaan Hei, kuinka voit? komento olisi:
$heitti pois 'Hei, kuinka voit?' | awk '{print substr ($ 0, 1, length ($ 0) -2)}')Missä pituus (0 dollaria) -2 tarkoittaa vähentämistä ' 2 'Koko merkkipituudesta.
Yllä oleva komento tulostaa merkkijonon, joka alkaa merkkinumero ' 1 'Ja merkkinumeroon asti' pituus (0 dollaria) -2 , 'Poistaa merkkijonon kaksi viimeistä merkkiä.
Poista sekä ensimmäinen että viimeinen merkki merkkijonosta
Voit poistaa sekä ensimmäisen että viimeisen merkin merkkijonosta Hei, kuinka voit? komento olisi:
$heitti pois 'Hei, kuinka voit?' | awk '{print substr ($ 0, 2, length ($ 0) - 2)}')Missä pituus (0 dollaria) -2 tarkoittaa vähentämistä ' 2 'Koko merkkipituudesta.
Yllä oleva komento tulostaa merkkijonon, joka alkaa merkkinumero ' 2 'Merkkinumeroon asti' pituus ($ 0) -2 , 'Poistaa ensimmäisen ja viimeisen merkin.
Poista merkki merkkijonosta leikkauksen avulla
Leikkaus on komentorivityökalu, jota käytetään yleisesti tekstin erottamiseen merkkijonosta tai tiedostosta ja tuloksen tulostamiseksi vakiotulosteeseen. Voit käyttää tätä komentoa myös merkkien poistamiseen merkkijonosta.
Esittelyä varten käytämme näytejonoa ja putkemme sen sitten leikkauskomentoon.
Poista ensimmäinen merkki merkkijonosta
Jos haluat poistaa ensimmäisen merkin merkkijonosta, Hei, kuinka voit? komento olisi:
$heitti pois 'Hei, kuinka voit?' | leikata -c 2-Tämä komento tulostaa merkkijonon toisesta merkistä alkaen ja poistaa ensimmäisen merkin.
Poista ensimmäiset neljä merkkiä merkkijonosta
Voit poistaa merkkijonosta neljä ensimmäistä merkkiä Hei, kuinka voit? komento olisi:
$heitti pois 'Hei, kuinka voit?' | leikata -c 5-Tämä komento tulostaa merkkijonon viidennestä merkistä alkaen ja poistaa ensimmäiset neljä merkkiä.
Tulosta merkkijono toisen ja viidennen merkin välillä
Merkkijonon tulostaminen Hei, kuinka voit? toisen ja viidennen merkin välillä , komento olisi:
$heitti pois 'Hei, kuinka voit?' | leikata -c 2-5Tämä komento tulostaa merkkijonon, joka alkaa toisesta merkistä aina viidenteen merkkiin ja poistaa loput alku- ja loppumerkit.
Poista viimeinen merkki merkkijonosta
Voit poistaa viimeisen merkin merkkijonosta Hei, kuinka voit? Käytä leikata komento näppäimellä rev , seuraavasti:
$heitti pois 'Hei, kuinka voit?' | rev | leikata -c2- | revTämä komento toimii kääntämällä ensin merkkijono, leikkaamalla sitten ensimmäinen merkki ja lopuksi kääntämällä se uudelleen, jotta saat halutun tuloksen.
Poista viimeiset neljä merkkiä merkkijonosta
Voit poistaa riviltä neljä viimeistä merkkiä Hei, kuinka voit? komento olisi:
$heitti pois 'Hei, kuinka voit?' | rev | leikata -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, jotta saat halutun tuloksen.
Poista ensimmäinen ja viimeinen merkki merkkijonosta
Ensimmäisen ja viimeisen merkin poistaminen merkkijonosta Hei, kuinka voit? Käytä leikata komento näppäimellä rev , seuraavasti:
$heitti pois 'Hei maailma!' | leikata -c2- | rev | leikata -c2- |revTämä komento toimii leikkaamalla ensimmäinen merkki, kääntämällä merkkijono ja leikkaamalla sen ensimmäinen merkki ja kääntämällä se sitten uudelleen, jotta saat halutun tuloksen.
Poista merkki merkkijonosta käyttämällä tr
Tr -komentoa (lyhenne käännöksestä) käytetään merkkien kääntämiseen, puristamiseen ja poistamiseen. Voit myös käyttää tr -näppäintä merkkien poistamiseen merkkijonosta.
Esittelyä varten käytämme näytejonoa ja putkemme sen sitten tr -komentoon.
Poista kaikki hahmot
Käyttämällä tr -komentoa voit poistaa merkkijonostasi kaikki pienet tai isot kirjaimet. Jos esimerkiksi haluat poistaa kaikki pienen kirjaimen 'h' esiintymät merkkijonosta, komento olisi:
$heitti pois 'Hei, kuinka voit?' | NS -dh
Samalla tavalla, jos haluat poistaa kaikki isojen kirjainten 'H' esiintymät merkkijonosta, komento olisi:
$heitti pois 'Hei, kuinka voit?' | NS -dHVoit myös käyttää tulkittuja sekvenssejä pienien tai isojen kirjainten poistamiseen:
$heitti pois 'Hei, kuinka voit?'| NS -d [: ylempi:]$heitti pois 'Hei, kuinka voit?'| NS -d [:alempi:]
Poista kaikki pienet ja isot kirjaimet
Voit myös poistaa merkkijonosta kaikki sekä pienet että isot kirjaimet. Esimerkiksi seuraava komento poistaa kaikki merkin 'h' esiintymät, sekä pienet että isot kirjaimet.
$heitti pois 'Hei, kuinka voit?' | NS -d'HH'
Poista kaikki esiintymiset tietyllä alueella
Jos haluat poistaa kaikki merkkijonot merkkijonosta tietyllä alueella 'd-h', komento olisi seuraava:
$heitti pois 'Hei, kuinka voit?' | NS -d 'd-h'Tämä komento poistaa merkkijonon 'd-h' (d, e, f, g, h) kaikki merkit.
Johtopäätös
Linuxissa on aina enemmän kuin yksi tapa suorittaa yksinkertainen työ. Sama koskee merkkien poistamista merkkijonosta. Tämä artikkeli näytti sinulle neljä eri tapaa tehdä niin, ja muutamia esimerkkejä ei -toivottujen merkkien poistamisesta merkkijonosta. Kaikki käytettävän työkalun valinta riippuu mieltymyksistäsi ja mikä tärkeintä, siitä, mitä haluat saavuttaa.