Kuinka poistaa viimeiset n merkkiä merkkijonosta Bashissa
Bashissa käyttäjän syötteiden lopussa olevan välilyönnin leikkaamista tai merkkijonon viimeisten n merkin poistamista voidaan käyttää tiedostonimien siivoamiseen, joilla on ei-toivottu tunniste:
Tapa 1: Käytä leikkauskomentoa
Bashin leikkauskomentoa käytetään poimimaan osia tiedoston jokaiselta riviltä. Sitä voidaan käyttää myös tietyn merkkialueen poimimiseen merkkijonosta. Poistaaksesi viimeiset n merkkiä merkkijonosta, voimme käyttää cut-komentoa valitsimella -c, ja tässä on syntaksi:
kaiku 'merkkijono' | leikata -c -n
Tässä merkkijono on varsinainen merkkijono, josta haluamme poistaa viimeiset n merkkiä, ja n on poistettavien merkkien määrä. Alla on esimerkki, joka käyttää yllä olevaa syntaksia:
#!/bin/bash
merkkijono = 'Hei Linux'
kaiku ' $string ' | leikata -c -5
Yllä olevassa esimerkissä olemme käyttäneet cut-komentoa poistamaan viimeiset 6 merkkiä merkkijonosta 'Hello Linux' ja tulos on 'Hei'.
Tapa 2: Käytä sed-komentoa
Sed on tehokas stream-editori, jota voidaan käyttää erilaisiin tekstimuunnoksiin tiedostoon tai syöttövirtaan. Poistaaksemme viimeiset n merkkiä merkkijonosta käyttämällä sed:tä, voimme käyttää seuraavaa komentosyntaksia:
kaiku 'merkkijono' | mutta 's/.\{n\}$//'Tässä n on merkkien lukumäärä, jotka haluamme poistaa merkkijonon lopusta, ja alla on esimerkki, joka käyttää sed-komentoa:
#!/bin/bash
merkkijono = 'Hei Linux'
kaiku ' $string ' | mutta 's/.\{6\}$//'
Yllä olevassa esimerkissä olemme käyttäneet sed-komentoa poistamaan viimeiset 6 merkkiä merkkijonosta 'Hello Linux' ja tulos on 'Hei'.
Tapa 3: Parametrilaajennuksen käyttäminen
Parametrien laajennus on Bashin ominaisuus, jonka avulla voimme manipuloida muuttujan arvoa. Jos haluat poistaa viimeiset n merkkiä merkkijonosta parametrilaajennuksella, voimme käyttää seuraavaa syntaksia:
${string::-n}Tässä merkkijonomuuttuja sisältää varsinaisen merkkijonon, josta haluamme poistaa viimeiset n merkkiä, ja n on poistettavien merkkien määrä.
#!/bin/bashmerkkijono = 'Hei Linux'
kaiku ${string::-6}
Yllä olevassa esimerkissä olemme käyttäneet parametrin laajennusta poistamaan viimeiset 4 merkkiä merkkijonosta 'Hello Linux' ja tulos on 'Hei'.
Johtopäätös
Voit poistaa viimeiset n merkkiä merkkijonosta bashissa käyttämällä cut-komentoa, sed-komentoa ja parametrin laajentamista kolmella tavalla. Nämä menetelmät ovat helppokäyttöisiä ja voivat olla hyödyllisiä erilaisissa Bash-komentosarjatehtävissä. Näitä menetelmiä käyttämällä voimme helposti käsitellä merkkijonoja ja tehdä tekstimuunnoksia Bashissa.