Merkkien poistaminen merkkijonosta Bashissa

Removing Characters From String Bash



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.
Poista tietty merkki merkkijonosta 1
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 tietty merkki merkkijonosta2

Poista ensimmäinen merkki merkkijonosta

Voit poistaa ensimmäisen merkin merkkijonosta Hei, kuinka voit? komento olisi:

$heitti pois 'Hei, kuinka voit?' | sed 's /^.//' tiedosto

Missä (.) Vastaa täsmälleen yhtä merkkiä ja (^) vastaa mitä tahansa merkkijonon alussa olevaa merkkiä.
Poista ensimmäinen merkki merkkijonosta

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 viimeinen merkki merkkijonosta

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 ensimmäinen ja viimeinen merkki merkkijonosta

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 ensimmäinen merkki merkkijonosta

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 kaksi ensimmäistä merkkiä merkkijonosta

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 . '

rmv viimeinen char frm merkkijono

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 kaksi viimeistä merkkiä merkkijonosta

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 sekä ensimmäinen että viimeinen merkki merkkijonosta

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.
rmv -leikkaus -c

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ä.
Poista ensimmäiset neljä merkkiä merkkijonosta

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-5

Tämä komento tulostaa merkkijonon, joka alkaa toisesta merkistä aina viidenteen merkkiin ja poistaa loput alku- ja loppumerkit.
rmv 2. ja 5. c2

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- | rev

Tä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.
02Poista viimeinen merkki merkkijonosta

Poista viimeiset neljä merkkiä merkkijonosta

Voit poistaa riviltä neljä viimeistä merkkiä Hei, kuinka voit? komento olisi:

$heitti pois 'Hei, kuinka voit?' | rev | leikata -c5- | rev

Tä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.
rmv viimeiset neljä merkkiä

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- |rev

Tä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.
rmv ensimmäinen ja viimeinen

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

poista kaikki tapahtumat 01

Samalla tavalla, jos haluat poistaa kaikki isojen kirjainten 'H' esiintymät merkkijonosta, komento olisi:

$heitti pois 'Hei, kuinka voit?' | NS -dH

Voit myös käyttää tulkittuja sekvenssejä pienien tai isojen kirjainten poistamiseen:

$heitti pois 'Hei, kuinka voit?'| NS -d [: ylempi:]

esiintymiä alempana

$heitti pois 'Hei, kuinka voit?'| NS -d [:alempi:]

esiintyy ylempänä

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'

esiintyy ylä- ja alareunassa

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.
esiintyy tiettyä aluetta

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.