Bash Eemalda stringist viimased x tähemärki

Bash Remove Last X Characters From String

Mõnikord tuleb kummagi stringi tähed kustutada. Just sel juhul võib Linux sisaldada mitmeid sisseehitatud kasulikke tööriistu sellise teksti kustutamiseks Bashist. See artikkel näitab, kuidas neid meetodeid kasutades kustutada stringidest tähti. Selles postituses käivitati juhised Ubuntu 20.04 Focal Fossa. Sama juhiseid võib käivitada mis tahes Linuxi süsteemis, kuhu on installitud ülalmainitud utiliidid. Juhiste täitmiseks kasutame tavalist terminali. Kiirklahv Ctrl+Alt+T avab tööriista Terminal.

Meetod 01: alamstringi viis

Meie esimene meetod tähtede või märkide eemaldamiseks stringist sarnaneb pigem alamstringi loomisega algsest. Vahepeal on terminal juba avatud; teeme bash -koodi lisamiseks bash -faili. Selleks, et saaksime selles märke eemaldada või alamstringi teha. Niisiis, oleme bash-faili loomiseks kasutanud oma kesta sisseehitatud puutetundlikke juhiseid.





Kuna fail on kiiresti loodud Ubuntu 20.04 kodukataloogi, avage see redigeerimiseks mõnes redaktoris. Seega valime faili.sh dokumendi avamiseks GNU redaktori, nagu allpool.



Kopeerige selles näidatud kood. See kood sisaldab alguses bash -laiendit ja pärast seda oleme deklareerinud stringi väärtusega stringi muutuja val. Teisel real kasutame kajafraasi selle muutuja kuvamiseks terminalis. Tõeline ülesanne algab siit. Oleme initsialiseerinud muutuja uue ja määranud sellele väärtuse, mis on algse muutuja alamstring. Oleme seda teinud, mainides kahekordsete koolonite järel breketites -14. See ütleb kompilaatorile, et ta peab eemaldama algsest stringist FirstWorldCountries viimased 14 tähte. Ülejäänud tähed salvestatakse muutuja uus. Viimases reas on kaja kasutatud uue muutuja uueks printimiseks.



Faili file.sh nõuetekohane täitmine bash -käsu abil toimub ootuspäraselt. Esiteks kuvab see esimese stringimuutuja val väärtuse ja pärast seda kuvab uue muutuja stringi väärtuse esimesest muutujast vastavalt näidatud väljundile.

Meetod 02: erisümbolite kasutamine

Teine lihtne ja lihtsam viis viimaste tähtede või tähemärkide eemaldamiseks mis tahes stringist on spetsiaalsete sümbolite või märkide, nt protsendi- ja küsimärgi sümbolite kaudu. Niisiis, seekord kasutame protsente ja küsimärke, et eemaldada tähemärgid mis tahes stringist. Seega oleme juba avanud sama faili bash -skripti värskendamiseks GNU Nano redaktori abil. Üldkood on sama, kuid muutuv uus osa on veidi erinev. Oleme kasutanud protsendimärki, et anda süsteemile teada, et nimetatud küsimärkide arv tähistab muutujast val eemaldatavate märkide arvu pärast seda protsendimärki. Näete, et oleme lisanud 9 küsimärgi sümbolit. See tähendab, et stringist FirstWorldCountries eemaldatakse viimased 9 märki ja ülejäänud string on FirstWorld. See allesjäänud string salvestatakse seejärel muutujale uus.

Kui oleme värskendatud bash -faili käivitanud, on väljund ootuspärane. See näitab esimese muutuja algset stringi ja teise muutuja väärtust, mis on loodud muutujast val.

Meetod 03: Sed kasutamine

Sed on kasulik ja tõhus vahend tekstijärjestuste muutmiseks. See on interaktiivne arenduskeskkond, mis võimaldab teil töötada andmete sisestamisega ja teha lihtsaid teksti teisendusi. Sediga saate kustutada ka tähti tekstidest, mida te ei soovi. Kasutame näitenädalat ja suuname selle näitlikustamiseks käsku sed. Saate kustutada konkreetse märgi mingist stringist sed. Niisiis, oleme kasutanud kaja lauses stringi lihtsat rida. A -tähe eemaldamiseks mainitud stringist oleme kasutanud sed -i. Järgige kindlasti süntaksit „s/string_to_be_removed //”. Väljund näitab, et täht A on eemaldatud.

Kogu sõna Aqsa eemaldamiseks oleme maininud sõna esimest ja viimast tähemärki, mille sees on täpid, mis tähistavad puuduvaid tähti. Väljund näitab stringi koos sõna Aqsa eemaldamisega.

Kui soovite stringist eemaldada viimased tähemärgid, mainige vastavalt vajadusele punktide arvu dollarisümboli ette, nagu näidatud.

Meetod 04: Awk kasutamine

Awk on keerukas skriptikeel, mida saab kasutada mustrite sobitamiseks ja tekstide töötlemiseks. Saate kasutada Awk -d sisendi muutmiseks ja muutmiseks mitmel erineval viisil. Võite kustutada tähed stringidest ka funktsiooni awk abil. Awk tundub sedast veidi erinev. Seekord oleme nööri vahetanud Aqsa Yasiniga. Funktsioon awk teeb alamstringi alamstringi abil ja prindib selle terminali. Funktsiooni pikkust on kasutatud mainitud stringist eemaldatud tähtede arvu näitamiseks. Siin tähendab pikkus ($ 0) -5 stringi viimase 5 tähemärgi eemaldamist ja ülejäänud osa on väljaprinditava alamstringi osa.

Oleme proovinud stringist Aqsa Yasin eemaldada viimased 9 märki ja saanud väljundi alamstringiks A.

Meetod 05: lõigatud kasutamine

Cut näib olevat käsurea utiliit tekstitüki ekstraheerimiseks sellisest fraasist või dokumendist ja selle standardväljundiks printimiseks. Seda toimingut saab kasutada ka tähtede eemaldamiseks mingist stringist. Kasutame näitefraasi ja edastame selle testimise eesmärgil lõikamisjuhendile. Seega oleme kasutanud fraasi Aqsa Yasin ja edastanud selle lõikepäringule. Pärast lippu –c oleme määratlenud stringi indeksite vahemiku, et märgid märgitud stringist välja lõigata. See näitab märke indeksist 1 kuni indeksini 5. Indeks 5 on siin välja jäetud. Väljund näitab nelja esimest märki Aqsa kujul.

Seekord kasutame lõikamisjuhendit teisiti. Stringi ümberpööramiseks oleme kasutanud funktsiooni rev. Pärast stringi tagurpidi lõikame stringist esimese märgi. Lipp -c2 -tähendab, et meie alamstring on märk 2. Pärast seda kasutatakse stringi tagasipööramiseks taas pöördfunktsiooni. Niisiis, seekord saime algse stringi tagasi koos viimase märgi eemaldamisega.

Viimase 7 märgi eemaldamiseks peate lõikamiskäskluses mainima ka tagurpidi funktsiooni kasutamise ajal.

Järeldus:

Põhiülesande tegemiseks Linuxis on aega rohkem kui üks meetod. Samamoodi on võimalik tekstist tähemärke kustutada. See artikkel demonstreeris viit erinevat meetodit soovimatute märkide eemaldamiseks stringist, samuti mõningaid juhtumeid. Ükskõik, millise tööriista valite, sõltub täielikult teie valikust ja mis veelgi olulisem - sellest, mida soovite saavutada.