Bash Pašalinkite paskutinius x simbolius iš eilutės

Bash Remove Last X Characters From String



Kartais gali tekti ištrinti raides iš bet kurios eilutės. Kaip bebūtų, „Linux“ yra keli integruoti, naudingi įrankiai, skirti pašalinti raides iš tokio teksto „Bash“. Šiame straipsnyje parodyta, kaip naudojant tuos metodus ištrinti raides iš bet kurios eilutės. Šiame įraše instrukcijos buvo vykdomos naudojant „Ubuntu 20.04 Focal Fossa“. Tos pačios instrukcijos gali būti vykdomos bet kurioje „Linux“ sistemoje, kurioje įdiegtos aukščiau paminėtos priemonės. Norėdami vykdyti instrukcijas, naudosime įprastą terminalą. Ctrl+Alt+T spartusis klavišas atidarys terminalo įrankį.

01 metodas: antrinis kelias

Pirmasis mūsų būdas pašalinti raides ar simbolius iš eilutės yra panašesnis į antrinės eilutės sukūrimą iš pradinės. Tuo tarpu terminalas jau atidarytas; padarysime bash failą, kad pridėtume savo bash kodą. Kad galėtume pašalinti simbolius arba sudaryti antrines eilutes. Taigi, norėdami sukurti „bash“ failą, panaudojome savo apvalkale esančią integruotą jutiklinę instrukciją.









Kadangi failas buvo greitai sukurtas „Ubuntu 20.04“ pagrindiniame aplanke, atidarykite jį redagavimui kai kuriame redaktoriuje. Taigi, norėdami atidaryti failą.sh dokumentą, pasirenkame GNU redaktorių, kaip parodyta žemiau.







Nukopijuokite žemiau esantį kodą. Šio kodo pradžioje yra „bash“ plėtinys, o po to paskelbėme eilutės kintamąjį val su eilutės reikšme. Kitoje eilutėje mes naudojame aido frazę, kad parodytume šį kintamąjį terminale. Tikroji užduotis prasideda nuo čia. Mes inicijavome naują kintamąjį ir priskyrėme jam reikšmę, kuri yra pradinio kintamojo val. Mes tai padarėme paminėdami -14 skliausteliuose po dvigubų dvitaškių. Tai kompiliatoriui nurodo, kad jis turi pašalinti paskutines 14 raidžių iš pradinės eilutės „FirstWorldCountries“. Likusios raidės bus išsaugotos kintamajame new. Paskutinėje eilutėje aidas buvo naudojamas naujam kintamajam atspausdinti.



Tinkamas failo failo.sh vykdymas naudojant „bash“ komandą išeina taip, kaip tikėtasi. Pirma, ji rodo pirmojo eilutės kintamojo reikšmę val, o po to - naujai sukurtos eilutės iš pirmo kintamojo reikšmę, kaip parodyta išvestyje.

02 metodas: specialių simbolių naudojimas

Kitas paprastas ir lengvesnis būdas pašalinti paskutines raides ar simbolius iš bet kurios eilutės yra naudojant specialius simbolius ar simbolius, pvz., Procentus ir klaustuko simbolius. Taigi, šį kartą mes naudosime procentą ir klaustuką, kad pašalintume simbolius iš bet kurios eilutės. Taigi mes jau atidarėme tą patį failą, kad atnaujintume „bash“ scenarijų naudodami „GNU Nano“ redaktorių. Bendras kodas yra tas pats, tačiau kintama nauja dalis šiek tiek skiriasi. Mes naudojome procentinį ženklą, kad sistema žinotų, jog minėti klaustukai rodo simbolių skaičių iš kintamojo val, kuris turi būti pašalintas po šio procentinio ženklo. Matote, kad pridėjome 9 klaustuko simbolius. Tai reiškia, kad paskutiniai 9 simboliai iš eilės „FirstWorldCountries“ bus pašalinti, o likusi eilutė bus „FirstWorld“. Tada likusi eilutė bus išsaugota naujame kintamajame.

Kai įvykdysime atnaujintą „bash“ failą, išvestis bus tokia, kokios tikėtasi. Tai rodo pradinę pirmojo kintamojo eilutę ir antrojo kintamojo, kuris buvo sukurtas iš kintamojo val, vertę.

03 metodas: Sed naudojimas

Sed yra naudinga ir efektyvi priemonė teksto sekoms keisti. Tai ne interaktyvi kūrimo aplinka, leidžianti dirbti su duomenų įvedimu ir paprastais teksto pakeitimais. Taip pat galite naudoti sed, norėdami ištrinti raides iš tekstų, kurių nenorite. Mes naudosime pavyzdinę eilutę ir nukreipime ją į komandą sed iliustravimo tikslais. Galite ištrinti tam tikrą simbolį iš tam tikros eilutės su sed. Taigi, echo sakinyje naudojome paprastą eilutės eilutę. Mes panaudojome sedą, kad pašalintume raidę A iš minėtos eilutės. Būtinai laikykitės sintaksės „s/string_to_be_removed //“. Išvestis rodo, kad raidė A buvo pašalinta.

Norėdami pašalinti visą žodį „Aqsa“, paminėjome pirmąjį ir paskutinį žodžio simbolį su taškais, kurie reiškia trūkstamas raides. Išvestyje rodoma eilutė su žodžio Aqsa pašalinimu.

Jei norite iš eilutės pašalinti bet kokį paskutinių simbolių skaičių, prieš dolerio simbolį, kaip parodyta, nurodykite taškų skaičių pagal savo reikalavimą.

04 metodas: naudojant „Awk“

„Awk“ yra sudėtinga scenarijų kalba, kuri gali būti naudojama derinant modelius ir apdorojant tekstus. Galite naudoti „Awk“, kad pakeistumėte ir keistumėte įvestį įvairiais būdais. Taip pat galite ištrinti raides iš eilučių naudodami „awk“. Awk atrodo šiek tiek kitoks nei sed. Šį kartą mes pakeitėme stygą su Aqsa Yasin. Funkcija „awk“ sudarys antrinę eilutę per substr metodą ir išspausdins ją terminale. Funkcijos ilgis buvo parodytas iš minėtos eilutės pašalintų raidžių skaičiui. Čia ilgis (0 USD) -5 reiškia pašalinti paskutinius 5 eilutės simbolius, o likusi dalis bus atspausdinta antrinės eilutės dalis.

Mes bandėme pašalinti paskutinius 9 simbolius iš eilutės Aqsa Yasin ir gavome A kaip išvesties antrinę eilutę.

05 metodas: „Cut“ naudojimas

Atrodo, kad „Cut“ yra komandinės eilutės įrankis, skirtas ištraukti teksto dalį iš tokios frazės ar dokumento ir atspausdinti į standartinę išvestį. Ši operacija taip pat gali būti naudojama norint pašalinti raides iš tam tikros eilutės. Mes naudosime pavyzdinę frazę ir perduosime ją pjaustymo instrukcijai bandymo tikslais. Taigi mes panaudojome „Aqsa Yasin“ frazę ir perdavėme ją iškirpimo užklausai. Po vėliavos –c mes apibrėžėme eilutės indeksų diapazoną, kad iš minėtos eilutės būtų iškirpti simboliai. Jame bus rodomi simboliai nuo 1 iki 5 rodyklės. 5 indeksas čia neįtrauktas. Išvestyje pirmieji 4 simboliai rodomi kaip „Aqsa“.

Šį kartą kirpimo instrukciją naudosime kitaip. Mes panaudojome rev funkciją, kad pakeistume eilutę. Po eilutės atvirkštinės pusės iškirpsime pirmąjį simbolį. Vėliava -c2 reiškia, kad mūsų antrinė eilutė bus tolesnis 2 simbolis. Po to atvirkštinė funkcija vėl naudojama eilutei grąžinti. Taigi, šį kartą mes atgavome pradinę eilutę, pašalindami paskutinį simbolį.

Norėdami pašalinti paskutinius 7 simbolius, tiesiog turite paminėti -c7 -komandą cut, kai naudojate ir atvirkštinę funkciją.

Išvada:

Yra daugiau nei vienas būdas atlikti pagrindinę užduotį „Linux“. Panašiai galima ištrinti simbolius iš teksto. Šis straipsnis parodė penkis skirtingus metodus, kaip pašalinti nepageidaujamus simbolius iš eilutės, taip pat kai kuriuos atvejus. Kad ir kokį įrankį pasirinksite, visiškai priklauso nuo jūsų pasirinkimo ir, svarbiausia, nuo to, ką norite pasiekti.