Bash Ukloni posljednjih x znakova iz niza

Bash Remove Last X Characters From String

Možda ćete ponekad morati izbrisati slova iz bilo kojeg niza. U svakom slučaju, Linux uključuje nekoliko ugrađenih, korisnih alata za uklanjanje slova s ​​takvog teksta u Bashu. Ovaj članak prikazuje kako izbrisati slova iz bilo kojeg niza pomoću tih metoda. U ovom postu upute su izvedene na Ubuntu 20.04 Focal Fossa. Iste upute mogu se izvoditi na bilo kojem Linux sustavu na kojem su instalirani gore navedeni uslužni programi. Za izvršavanje uputa koristit ćemo uobičajeni terminal. Prečac Ctrl+Alt+T otvorit će alat Terminal.

Metoda 01: Način podniz

Naša prva metoda uklanjanja slova ili znakova iz niza više je poput stvaranja podniza od izvornog. U međuvremenu je terminal već otvoren; napravit ćemo bash datoteku za dodavanje našeg bash koda. Kako bismo u njemu mogli ukloniti znakove ili napraviti podniz. Dakle, upotrijebili smo ugrađenu upute za dodir u našoj ljusci za stvaranje bash datoteke.





Kako je datoteka brzo generirana u početnoj mapi Ubuntu 20.04, otvorite je u nekom uređivaču za uređivanje. Stoga odabiremo GNU editor za otvaranje dokumenta file.sh kao što je dolje.



Kopirajte dolje prikazani kôd. Ovaj kôd sadrži bash ekstenziju na početku, a nakon toga smo proglasili varijablu niza val s vrijednošću niza. Na drugom retku koristimo echo izraz za prikaz ove varijable u terminalu. Pravi zadatak počinje odavde. Inicijalizirali smo varijablu new i dodijelili joj vrijednost koja je podniz izvorne varijable val. Učinili smo to spomenuvši -14 u zagradama nakon dvostrukog dvotočka. To govori prevoditelju da mora ukloniti posljednjih 14 slova iz izvornog niza FirstWorldCountries. Preostala slova bit će spremljena u varijablu new. U posljednjem retku, odjek je korišten za ispis nove varijable new.



Pravilno izvršavanje datoteke file.sh pomoću naredbe bash izlazi očekivano. Prvo prikazuje vrijednost prve varijable niza val, a nakon toga prikazuje vrijednost novonastalog niza iz prve varijable prema prikazanom izlazu.

Metoda 02: Korištenje posebnih simbola

Druga jednostavna i lakša metoda uklanjanja posljednjih slova ili znakova iz bilo kojeg niza je pomoću posebnih simbola ili znakova, na primjer, postotaka i simbola upitnika. Dakle, ovaj put ćemo koristiti postotak i upitnik za uklanjanje znakova iz bilo kojeg niza. Stoga smo već otvorili istu datoteku za ažuriranje bash skripte pomoću GNU Nano uređivača. Sveukupni kod je isti, ali promjenjivi novi dio je malo drugačiji. Upotrijebili smo znak postotka kako bismo sustavu dali do znanja da spomenuti brojevi upitnika predstavljaju broj znakova iz varijable val koji se uklanja nakon ovog znaka postotka. Možete vidjeti da smo dodali 9 simbola upitnika. To znači da će posljednjih 9 znakova iz niza FirstWorldCountries biti uklonjeno, a preostali niz bit će FirstWorld. Ovaj preostali niz tada će se spremiti u varijablu new.

Kad izvršimo ažuriranu bash datoteku, izlaz dolazi očekivano. Prikazuje izvorni niz iz prve varijable i vrijednost druge varijable, nove koja je stvorena iz varijable val.

Metoda 03: Korištenje Sed

Sed je koristan i učinkovit alat za mijenjanje tekstualnih nizova. To je neinteraktivno razvojno okruženje koje vam omogućuje rad s unosom podataka i jednostavne transformacije teksta. Sed možete koristiti i za brisanje slova iz tekstova koje ne želite. Koristit ćemo primjer niza i usmjeriti ga u naredbu sed radi ilustracije. Možete izbrisati određeni znak iz neke vrste niza sa sed. Dakle, koristili smo jednostavnu liniju niza unutar naredbe echo. Pomoću sed smo uklonili slovo A iz spomenutog niza. Slijedite sintaksu 's/string_to_be_removed //'. Izlaz pokazuje da je slovo A uklonjeno.

Kako bismo uklonili cijelu riječ Aqsa, spomenuli smo prvi i zadnji znak riječi s točkama unutar koje predstavljaju nedostajuća slova. Izlaz prikazuje niz s uklanjanjem riječi Aqsa.

Da biste uklonili bilo koji posljednji znak iz niza, prije simbola dolara navedite broj točaka prema vašem zahtjevu, kao što je prikazano.

Metoda 04: Korištenje Awka

Awk je sofisticirani skriptni jezik koji se može koristiti za usklađivanje uzoraka i obradu tekstova. Možete koristiti Awk za prebacivanje i izmjenu unosa na različite načine. Također možete izbrisati slova iz nizova pomoću awk. Čini se da se Awk malo razlikuje od sed. Ovaj put smo promijenili niz s Aqsa Yasin. Funkcija awk će napraviti podniz pomoću metode substr i ispisati ga u terminalu. Dužina funkcije korištena je za demonstraciju broja slova uklonjenih iz spomenutog niza. Ovdje dužina ($ 0) -5 znači ukloniti posljednjih 5 znakova niza, a preostali će biti dio podniz koji će se ispisati.

Pokušali smo ukloniti posljednjih 9 znakova iz niza Aqsa Yasin i dobili smo A kao izlazni podniz.

Metoda 05: Korištenje reza

Čini se da je Cut pomoćni program za naredbeni redak za izdvajanje dijela teksta iz takve fraze ili dokumenta i ispis na standardni izlaz. Ova se operacija također može koristiti za uklanjanje slova iz neke vrste niza. Koristit ćemo primjer fraze i proslijediti je uputama za rezanje u svrhu testiranja. Tako smo upotrijebili izraz Aqsa Yasin i proslijedili ga rezanom upitu. Nakon zastavice –c, definirali smo raspon indeksa za niz za rezanje znakova iz spomenutog niza. Prikazat će znakove od indeksa 1 do indeksa 5. Indeks 5 je ovdje isključen. Izlaz prikazuje prva 4 znaka kao Aqsa.

Ovaj put ćemo drugačije koristiti upute za rezanje. Koristili smo funkciju rev ​​za preokret niza. Nakon obrnutog niza, izrezat ćemo prvi znak iz niza. Zastava -c2 -znači da će naš podniz biti od 2 karaktera. Nakon toga se obrnuta funkcija ponovno koristi za vraćanje niza. Dakle, ovaj put smo vratili izvorni niz uklanjanjem posljednjeg znaka.

Da biste uklonili posljednjih 7 znakova, samo morate spomenuti -c7 -u naredbi cut dok koristite i obrnutu funkciju.

Zaključak:

Postoji vrijeme za više metoda za obavljanje osnovnog zadatka na Linuxu. Slično je moguće brisanje znakova iz teksta. Ovaj članak pokazao je pet različitih metoda za uklanjanje neželjenih znakova iz niza, kao i neke slučajeve. Koji god alat odabrali u potpunosti ovisi o vašem izboru i, što je još važnije, o tome što želite postići.