Kuidas eemaldada Bashis stringist viimased n tähemärki
Bashis saab soovimatute laienditega failinimede korrastamiseks kasutada kasutaja sisendite lõpus olevat tühiku kärpimist või stringist viimase n tähemärgi eemaldamist:
1. meetod: käsu lõikamine
Bashi käsku cut kasutatakse faili igalt realt lõikude eraldamiseks. Seda saab kasutada ka teatud märkide vahemiku eraldamiseks stringist. Viimase n tähemärgi eemaldamiseks stringist saame kasutada käsku cut koos võtmega -c ja siin on süntaks:
kaja 'string' | lõigatud -c -n
Siin on string tegelik string, millest tahame eemaldada viimased n tähemärki, ja n on märkide arv, mida tahame eemaldada. Allpool on näide, mis kasutab ülaltoodud süntaksit:
#!/bin/bash
string = 'Tere Linux'
kaja ' $string ' | lõigatud -c -5
Ülaltoodud näites oleme kasutanud käsku cut, et eemaldada stringist 'Tere Linux' viimased 6 märki ja väljundiks on 'Tere'.
2. meetod: käsu sed kasutamine
Sed on võimas vooredaktor, mida saab kasutada erinevate tekstiteisenduste tegemiseks failis või sisendvoos. Viimase n tähemärgi eemaldamiseks stringist sed abil saame kasutada järgmist käsusüntaksit:
kaja 'string' | aga 's/.\{n\}$//'Siin on n märkide arv, mille tahame stringi lõpust eemaldada, ja allpool on näide, mis kasutab käsku sed:
#!/bin/bash
string = 'Tere Linux'
kaja ' $string ' | aga 's/.\{6\}$//'
Ülaltoodud näites oleme kasutanud käsku sed, et eemaldada stringist 'Tere Linux' viimased 6 märki ja väljundiks on 'Tere'.
3. meetod: parameetri laiendamise kasutamine
Parameetrite laiendamine on Bashi funktsioon, mis võimaldab meil muuta muutuja väärtust. Viimase n tähemärgi eemaldamiseks stringist parameetrilaienduse abil saame kasutada järgmist süntaksit:
${string::-n}Siin sisaldab stringi muutuja tegelikku stringi, millest tahame eemaldada viimased n tähemärki, ja n on märkide arv, mida tahame eemaldada.
#!/bin/bashstring = 'Tere Linux'
kaja ${string::-6}
Ülaltoodud näites oleme kasutanud parameetrite laiendamist, et eemaldada stringist 'Tere Linux' viimased 4 märki ja väljundiks on 'Tere'.
Järeldus
Viimase n tähemärgi eemaldamiseks stringist bashis on kolm võimalust cut-käsk, sed-käsk ja parameetrite laiendamine. Neid meetodeid on lihtne kasutada ja need võivad olla abiks mitmesugustes Bashi skriptimisülesannetes. Neid meetodeid kasutades saame Bashis hõlpsasti stringe manipuleerida ja tekstiteisendusi teha.