Bash Odstrani zadnje x znake iz niza

Bash Remove Last X Characters From String



Morda bo treba včasih iz katerega koli niza izbrisati črke. V vsakem primeru Linux vsebuje več vgrajenih, uporabnih orodij za odstranjevanje črk iz takega besedila v Bashu. Ta članek prikazuje, kako s temi metodami izbrišete črke iz katerega koli niza. Na tem mestu so navodila potekala na Ubuntu 20.04 Focal Fossa. Ista navodila se lahko izvajajo v katerem koli sistemu Linux, v katerem so nameščeni zgoraj omenjeni pripomočki. Za izvedbo navodil bomo uporabili običajen terminal. Bližnjica Ctrl+Alt+T odpre orodje Terminal.

Metoda 01: Pot podniz

Naš prvi način odstranjevanja črk ali znakov iz niza je bolj podoben ustvarjanju podniz iz prvotnega. Medtem je bil terminal že odprt; naredili bomo bash datoteko, ki bo dodala našo bash kodo. Tako lahko v njem odstranimo znake ali naredimo podniz. Tako smo za izdelavo bash datoteke uporabili vgrajeno navodilo na dotik v svoji lupini.









Ker je bila datoteka hitro ustvarjena v domači mapi Ubuntu 20.04, jo odprite v urejevalniku za urejanje. Zato smo izbrali urejevalnik GNU, da odpremo datoteko file.sh, kot je prikazano spodaj.







Kopirajte spodaj prikazano kodo. Ta koda vsebuje razširitev bash na začetku, nato pa smo razglasili spremenljivko niza val z vrednostjo niza. V drugi vrstici uporabljamo odmevno frazo za prikaz te spremenljivke v terminalu. Od tu se začne prava naloga. Inicializirali smo spremenljivko new in ji dodelili vrednost, ki je podniz prvotne spremenljivke val. To smo storili tako, da smo v oklepaju za dvojnim dvopičjem omenili -14. To pove prevajalniku, da mora odstraniti zadnjih 14 črk iz prvotnega niza FirstWorldCountries. Preostale črke bodo shranjene v spremenljivko new. V zadnji vrstici je bil odmev uporabljen za tiskanje nove spremenljivke new.



Pravilna izvedba datoteke file.sh z ukazom bash se izkaže po pričakovanjih. Najprej prikaže vrednost prve spremenljivke niza val, nato pa vrednost novonastalega niza iz prve spremenljivke v skladu s prikazanim izhodom.

Metoda 02: Uporaba posebnih simbolov

Druga preprosta in lažja metoda za odstranitev zadnjih črk ali znakov iz katerega koli niza je uporaba posebnih simbolov ali znakov, na primer simbolov odstotka in vprašaja. Tako bomo tokrat uporabili odstotek in vprašaj za odstranitev znakov iz katerega koli niza. Zato smo že odprli isto datoteko za posodobitev bash skripta z urejevalnikom GNU Nano. Na splošno je koda enaka, spremenljivka novi del pa je nekoliko drugačna. Z znakom odstotka smo sistemu sporočili, da omenjeno število vprašajev predstavlja število znakov spremenljivega val, ki ga je treba odstraniti po tem odstotnem znaku. Vidite lahko, da smo dodali 9 simbolov vprašaja. To pomeni, da bo zadnjih 9 znakov iz niza FirstWorldCountries odstranjenih, preostali niz pa bo FirstWorld. Ta preostali niz bo nato shranjen v spremenljivko new.

Ko smo izvedli posodobljeno datoteko bash, je rezultat pričakovan. Prikazuje izvirni niz iz prve spremenljivke in vrednost druge spremenljivke, nove, ki je bila ustvarjena iz spremenljivke val.

Metoda 03: Uporaba sed

Sed je uporabno in učinkovito orodje za spreminjanje besedilnih zaporedij. To je neinteraktivno razvojno okolje, ki vam omogoča delo z vnosom podatkov in preprosto preoblikovanje besedila. Sed lahko uporabite tudi za brisanje črk iz besedil, ki jih ne želite. Za ponazoritev bomo uporabili primer niza in ga preusmerili v ukaz sed. Lahko izbrišete določen znak iz neke vrste niza s sed. Tako smo v stavku echo uporabili preprosto vrstico niza. Za odstranitev črke A iz omenjenega niza smo uporabili sed. Upoštevajte skladnjo 's/string_to_be_removed //'. Izhod prikazuje črko A je bila odstranjena.

Za odstranitev celotne besede Aqsa smo omenili prvi in ​​zadnji znak besede s pikami, ki predstavljajo manjkajoče črke. Izhod prikazuje niz z odstranitvijo besede Aqsa.

Če želite odstraniti poljubno število zadnjih znakov iz niza, pred simbolom dolarja, kot je prikazano, navedite število pik glede na vaše zahteve.

Metoda 04: Uporaba programa Awk

Awk je prefinjen skriptni jezik, ki se lahko uporablja za ujemanje vzorcev in obdelavo besedil. Awk lahko uporabite za spreminjanje in spreminjanje vnosa na različne načine. Črke iz nizov lahko izbrišete tudi z uporabo awk. Awk se zdi nekoliko drugačen od sed. Tokrat smo niz zamenjali z Aqsa Yasin. Funkcija awk bo naredila podniz z metodo substr in jo natisnila v terminalu. Dolžina funkcije je bila uporabljena za prikaz števila črk, odstranjenih iz omenjenega niza. Tukaj dolžina ($ 0) -5 pomeni odstranitev zadnjih 5 znakov niza, preostali pa bo del podniz, ki ga je treba natisniti.

Poskušali smo odstraniti zadnjih 9 znakov iz niza Aqsa Yasin in dobili A kot izhodni podniz.

Metoda 05: Uporaba reza

Zdi se, da je Cut pripomoček za ukazno vrstico za izvlečenje dela besedila iz take fraze ali dokumenta in tiskanje na standardni izhod. To operacijo lahko uporabite tudi za odstranjevanje črk iz neke vrste niza. Uporabili bomo primer fraze in jo posredovali navodilom za izrezovanje za namene testiranja. Zato smo uporabili frazo Aqsa Yasin in jo posredovali v poizvedbo cut. Po zastavici –c smo definirali obseg indeksov za niz, ki izreže znake iz omenjenega niza. Prikazal bo znake od indeksa 1 do indeksa 5. Indeks 5 je tukaj izključen. Izhod prikazuje prve 4 znake kot Aqsa.

Tokrat bomo navodila za rez uporabili drugače. Za obrnitev niza smo uporabili funkcijo rev. Po obratnem nizu bomo izrezali prvi znak iz niza. Zastavica -c2 -pomeni, da bo naš podniz naslednji znak 2. Po tem se za vrnitev niza ponovno uporabi funkcija obrat. Tako smo tokrat dobili prvotni niz z odstranitvijo zadnjega znaka.

Če želite odstraniti zadnjih 7 znakov, morate v ukazu za izrezovanje omeniti tudi -c7 -, medtem ko uporabljate tudi obratno funkcijo.

Zaključek:

Obstaja nekaj načinov za izvajanje osnovne naloge v Linuxu. Podobno je možno brisanje znakov iz besedila. Ta članek je pokazal pet različnih načinov za odpravo neželenih znakov iz niza, pa tudi nekatere primere. Katero koli orodje, ki ga izberete, je v celoti odvisno od vaše izbire in, kar je še pomembneje, od tega, kaj želite doseči.