BASH programiranje

Uklanjanje znakova iz niza u Bashu

Uklanjanje znakova iz niza u Bashu

Ponekad ćete možda trebati ukloniti znakove iz niza. Bez obzira na razlog, Linux vam nudi razne ugrađene, praktične alate koji vam omogućuju uklanjanje znakova iz niza u Bashu. Ovaj vam članak pokazuje kako pomoću tih alata ukloniti znakove iz niza.

Članak pokriva kako izvesti sljedeće:

Naredbe prikazane u ovom članku izvedene su u Ubuntu 20.04 Žarišna fosa. Iste naredbe mogu se izvoditi i na drugim Linux distribucijama koje imaju gore navedene alate na raspolaganju. Za pokretanje naredbi koristit ćemo zadanu aplikaciju Terminal. Aplikaciji Terminal možete pristupiti pomoću tipkovne prečice Ctrl + Alt + T.

Ukloni znakove iz niza pomoću sed

Sed je moćan i praktičan uslužni program koji se koristi za uređivanje strujanja teksta. To je neinteraktivni uređivač teksta koji vam omogućuje izvođenje osnovnih manipulacija tekstom na ulaznim tokovima. Također možete koristiti sed za uklanjanje neželjenih znakova iz nizova.

U svrhu demonstracije upotrijebit ćemo uzorak niza i zatim ga prenijeti u naredbu sed.

Uklonite određeni znak iz niza

Koristeći sed, možete ukloniti određeni znak iz niza. Na primjer, za uklanjanje "h" iz niza "bok, kako si?”Naredba bi bila:

$ echo "zdravo, kako si?"| sed 's / h //'

Ovo će ukloniti samo prvu pojavu 'h' u nizu.

Da biste uklonili sve pojave 'h' iz niza, upotrijebite sljedeću naredbu:

$ echo "zdravo, kako si?"| sed 's / h // g'

Gdje g stoji za globalni. Uklonit će sve pojave 'h' u nizu.

Uklonite prvi znak iz niza

Da biste uklonili prvi znak iz niza “bok, kako si?" naredba bi bila:

$ echo "zdravo, kako si?"| sed 's / ^.//' datoteka

Gdje (.) odgovara točno jednom znaku i (^) odgovara bilo kojem znaku na početku niza.

Ukloni zadnji znak iz niza

Da biste uklonili zadnji znak iz niza “bok, kako si?" naredba bi bila:

$ echo "zdravo, kako si?"| sed 's /.$ // '

Gdje (.) se podudara s točno jednim znakom i ($) s bilo kojim znakom na kraju niza.

Uklonite prvi i posljednji znak iz niza

Da biste uklonili prvi i zadnji znak iz niza “bok, kako si?" naredba bi bila:

$ echo "zdravo, kako si?"| sed 's / ^.//; s /.$ // '

Ukloni znakove iz niza pomoću awk

Awk je moćan skriptni jezik koji se koristi za podudaranje uzoraka, zajedno s obradom teksta. Awk omogućuje filtriranje i pretvaranje teksta na razne načine. Također možete koristiti awk za uklanjanje znakova iz nizova.

U svrhu demonstracije upotrijebit ćemo uzorak niza i zatim ga prenijeti u naredbu awk.

Uklonite prvi znak iz niza

Da biste uklonili prvi znak iz niza “bok, kako si?" naredba bi bila:

$ echo "zdravo, kako si?"| awk 'print substr ($ 0, 2)'

Gdje je ($ 0) cijeli ciljni niz, a (2) početna pozicija znaka. Gornja naredba uklanja prvi znak, 'h,' broj znaka '1', i vraća ciljni niz koji počinje s drugim znakom, 'e.'

Uklonite prva dva znaka iz niza

Također možete ukloniti određeni broj znakova s ​​početka niza. Na primjer, za uklanjanje prva dva znaka iz niza “bok, kako si?" naredba bi bila:

$ echo "zdravo, kako si?"| awk 'print substr ($ 0, 3)'

Gornja naredba uklonit će prva dva znaka, 'on' ili brojeve znakova '1 i 2' i vratit će ciljni niz koji počinje s brojem znakova '3' ili 'l.'

Ukloni zadnji znak iz niza

Da biste uklonili posljednji znak iz "bok, kako si?" naredba bi bila:

$ echo "zdravo, kako si?"| awk 'print substr ($ 0, 1, length ($ 0) -1)'

Gdje duljina ($ 0) -1 znači odbiti '1'od ukupne duljine znaka.

Gornja naredba ispisat će niz koji započinje brojem znaka '1'do duljina ($ 0) -1 skinuti posljednji lik.

Tamo su '19'znakova (uključujući razmake) u gornjem nizu. Naredba će raditi ispisom svih znakova, počevši od znaka '1'i do karaktera'18,'dok uklanjam posljednji znak'19.'

Uklonite zadnja dva znaka iz niza

Da biste uklonili zadnja dva znaka iz "bok, kako si?”Naredba bi bila:

$ echo "zdravo, kako si?"| awk 'print substr ($ 0, 1, length ($ 0) -2)'

Gdje duljina (0 USD) -2 znači odbiti '2'od ukupne duljine znaka.

Gornja naredba ispisat će niz koji započinje brojem znaka '1'i do broja znakova'duljina (0 USD) -2,'za uklanjanje posljednja dva znaka iz niza.

Uklonite prva i zadnja znaka iz niza

Da biste uklonili i prvi i zadnji znak iz niza “bok, kako si?" naredba bi bila:

$ echo "zdravo, kako si?"| awk 'print substr ($ 0, 2, length ($ 0) - 2)'

Gdje duljina (0 USD) -2 znači odbiti '2'od ukupne duljine znaka.

Gornja naredba ispisat će niz koji započinje brojem znaka '2'do broja znakova'duljina (0 USD) -2,'da biste uklonili prvi i posljednji znak.

Ukloni lik iz niza pomoću izreza

Izreži je alat naredbenog retka koji se obično koristi za izdvajanje dijela teksta iz niza ili datoteke i ispis rezultata na standardni izlaz. Ovu naredbu možete koristiti i za uklanjanje znakova iz niza.

U svrhu demonstracije upotrijebit ćemo uzorak niza i zatim ga prenijeti u naredbu cut.

Uklonite prvi znak iz niza

Da biste uklonili prvi znak iz niza, “bok, kako si?" naredba bi bila:

$ echo "zdravo, kako si?"| izrezati -c 2-

Ova naredba će ispisati niz koji započinje s drugim znakom, dok će uklanjati prvi znak.

Uklonite prva četiri znaka iz niza

Za uklanjanje prva četiri znaka iz niza “bok, kako si?" naredba bi bila:

$ echo "zdravo, kako si?"| izrezati -c 5-

Ova će naredba ispisati niz, počevši od petog znaka, dok će uklanjati prva četiri znaka.

Ispis niza između 2. i 5. znaka

Za ispis niza “bok, kako si?" između drugog i petog znaka, naredba bi bila:

$ echo "zdravo, kako si?"| izrezati -c 2-5

Ova će naredba ispisati niz, počevši od drugog znaka pa sve do petog znaka, dok će uklanjati preostale početne i završne znakove.

Ukloni zadnji znak iz niza

Da biste uklonili zadnji znak iz niza “bok, kako si?" koristiti izrezati naredba sa vlč, kako slijedi:

$ echo "zdravo, kako si?"| rev | cut -c2- | rev

Ova naredba djeluje tako da prvo preokrene niz, zatim izreže prvi znak i na kraju ga opet preokrene kako bi dobila željeni izlaz.

Uklonite posljednja četiri znaka iz niza

Da biste uklonili zadnja četiri znaka iz retka “bok, kako si?" naredba bi bila:

$ echo "zdravo, kako si?"| rev | cut -c5- | rev

Ova naredba djeluje tako da prvo preokrene niz, zatim izreže prva četiri znaka, a zatim ga opet preokrene kako bi dobila željeni izlaz.

Uklonite prve i posljednje znakove iz niza

Da biste uklonili prvi i zadnji znak iz niza “bok, kako si?" koristiti izrezati naredba sa vlč, kako slijedi:

$ echo "zdravo svijetu!"| izrezati -c2- | rev | izrezati -c2- | rev

Ova naredba djeluje rezanjem prvog znaka, zatim preokretom niza i rezanjem njegovog prvog znaka, a zatim ponovnim vraćanjem da bi se dobio željeni izlaz.

Ukloni znak iz niza pomoću tr

Naredba tr (kratica za prijevod) koristi se za prevođenje, istiskivanje i brisanje znakova iz niza. Također možete koristiti tr za uklanjanje znakova iz niza.

U svrhu demonstracije upotrijebit ćemo uzorak niza i zatim ga prenijeti u naredbu tr.

Ukloni sve pojave znakova

Pomoću naredbe tr iz niza možete ukloniti sve pojave malih ili velikih slova. Na primjer, za uklanjanje svih pojavljivanja malog slova 'h' iz niza, naredba bi bila:

$ echo "Zdravo, kako si?"| tr -d h

Slično tome, za uklanjanje svih pojavljivanja velikog slova 'H' iz niza, naredba bi bila:

$ echo "Zdravo, kako si?"| tr -d H

Tumačene sekvence možete koristiti i za uklanjanje malih ili velikih slova:

$ echo "Zdravo, kako si?"| tr -d [: gornji:]

$ echo "DOBRO, kako si?"| tr -d [: niže:]

Uklonite sve pojave malih i velikih slova

Iz niza također možete ukloniti sve pojave malih i velikih slova. Na primjer, sljedeća naredba uklonit će sve pojave znaka 'h', i mala i velika slova.

$ echo "Zdravo, kako si?"| tr -d 'hH'

Uklonite sve pojave znakova u određenom rasponu

Da bi se uklonile sve pojave znakova iz niza u određenom rasponu 'd-h', naredba bi bila:

$ echo "zdravo, kako si?"| tr -d 'd-h'

Ova će naredba ukloniti sve znakove iz raspona 'd-h' (d, e, f, g, h) u nizu.

Zaključak

U Linuxu će uvijek biti više načina za postizanje jednostavnog posla. Isto vrijedi i za uklanjanje znakova iz niza. Ovaj vam je članak pokazao četiri različita načina za to, zajedno s nekoliko primjera za uklanjanje neželjenih znakova iz niza. Odluka o tome koji ćete alat koristiti ovisi o vašim željama i, što je još važnije, o tome što želite postići.

Luke komercijalnih igara s otvorenim kodom
Besplatne igre s otvorenim kodom i više platformi mogu se koristiti za igranje starih, kao i nekih prilično nedavnih naslova igara. U ovom će se člank...
Najbolje igre naredbenog retka za Linux
Naredbeni redak nije samo vaš najveći saveznik pri korištenju Linuxa - on također može biti izvor zabave jer ga možete koristiti za igranje mnogih zab...
Najbolje aplikacije za mapiranje gamepada za Linux
Ako volite igrati igre na Linuxu s gamepadom umjesto tipičnim sustavom za unos tipkovnice i miša, za vas postoji nekoliko korisnih aplikacija. Mnoge r...