BASH programiranje

Odstranjevanje znakov iz niza v Bashu

Odstranjevanje znakov iz niza v Bashu

Včasih boste morda morali odstraniti znake iz niza. Ne glede na razlog, Linux vam ponuja različna vgrajena in priročna orodja, ki omogočajo odstranjevanje znakov iz niza v Bashu. V tem članku je razloženo, kako s temi orodji odstranite znake iz niza.

Članek zajema, kako izvesti naslednje:

Ukazi, prikazani v tem članku, so bili izvedeni v Ubuntu 20.04 Focal Fossa. Iste ukaze lahko izvajate tudi v drugih distribucijah Linuxa, ki imajo na voljo zgornja orodja. Za zagon ukazov bomo uporabili privzeto aplikacijo Terminal. Do aplikacije Terminal lahko dostopate z bližnjico na tipkovnici Ctrl + Alt + T.

Odstranite znake iz niza z uporabo sed

Sed je močan in priročen pripomoček, ki se uporablja za urejanje tokov besedila. Je neinteraktivni urejevalnik besedila, ki vam omogoča izvajanje osnovnih besedilnih manipulacij na vhodnih tokovih. Sed lahko uporabite tudi za odstranjevanje neželenih znakov iz nizov.

Za predstavitvene namene bomo uporabili vzorec niza in ga nato napeljali v ukaz sed.

Odstranite določen znak iz niza

Z uporabo sed lahko iz niza odstranite določen znak. Če želite na primer odstraniti “h” iz niza “Živjo kako si?"Ukaz bi bil:

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

S tem boste odstranili samo prvi pojav 'h' v nizu.

Če želite iz niza odstraniti vse pojavitve 'h', uporabite naslednji ukaz:

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

Kje g pomeni globalno. Odstranil bo vse pojavitve 'h' v nizu.

Odstranite prvi znak iz niza

Če želite odstraniti prvi znak iz niza “Živjo kako si?" ukaz bi bil:

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

Kje (.) se ujema z natančno enim znakom in (^) s katerim koli znakom na začetku niza.

Odstranite zadnji znak iz niza

Če želite odstraniti zadnji znak iz niza “Živjo kako si?" ukaz bi bil:

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

Kje (.) se ujema z natančno enim znakom in ($) s katerim koli znakom na koncu niza.

Odstranite prvi in ​​zadnji znak iz niza

Če želite odstraniti prvi in ​​zadnji znak iz niza “Živjo kako si?" ukaz bi bil:

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

Odstranite znake iz niza z uporabo awk

Awk je zmogljiv skriptni jezik, ki se uporablja za ujemanje vzorcev, skupaj z obdelavo besedila. Awk vam omogoča filtriranje in preoblikovanje besedila na različne načine. Z awk lahko odstranite tudi znake iz nizov.

Za predstavitvene namene bomo uporabili vzorčni niz in ga nato napeljali do ukaza awk.

Odstranite prvi znak iz niza

Če želite odstraniti prvi znak iz niza “Živjo kako si?" ukaz bi bil:

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

Kjer je ($ 0) celoten ciljni niz, (2) pa začetni položaj znaka. Zgornji ukaz odstrani prvi znak, 'h,' številka znaka '1', in vrne ciljni niz, ki se začne z drugim znakom, 'e."

Odstranite prva dva znaka iz niza

Na začetku niza lahko odstranite tudi določeno število znakov. Če želite na primer odstraniti prva dva znaka iz niza »Živjo kako si?" ukaz bi bil:

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

Zgornji ukaz bo odstranil prva dva znaka, 'he' ali številki znakov '1 in 2', in vrnil ciljni niz, ki se začne s številko znaka '3' ali 'l."

Odstranite zadnji znak iz niza

Če želite odstraniti zadnji znak izŽivjo kako si?" ukaz bi bil:

$ echo "zdravo, kako si?"| awk 'natisni podstr ($ 0, 1, dolžina ($ 0) -1)'

Kje dolžina (0 USD) -1 pomeni odštevanje “1'od celotne dolžine znaka.

Zgornji ukaz bo natisnil niz, ki se začne s številko znaka '1do dolžina (0 USD) -1 da odstranite zadnji znak.

Obstajajo "19'znaki (vključno s presledki) v zgornjem nizu. Ukaz deluje tako, da natisne vse znake, začenši z znakom '1'in do znaka'18,'med odstranjevanjem zadnjega znaka'19."

Odstranite zadnja dva znaka iz niza

Če želite odstraniti zadnja dva znaka izŽivjo kako si?"Ukaz bi bil:

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

Kje dolžina (0 USD) -2 pomeni odštevanje “2'od celotne dolžine znaka.

Zgornji ukaz bo natisnil niz, začenši s številko znaka '1'in do številke znaka'dolžina (0 USD) -2,'za odstranitev zadnjih dveh znakov v nizu.

Odstranite prva in zadnja znaka iz niza

Če želite odstraniti prvi in ​​zadnji znak iz niza “Živjo kako si?" ukaz bi bil:

$ echo "zdravo, kako si?"| awk 'natisni podstr ($ 0, 2, dolžina ($ 0) - 2)'

Kje dolžina (0 USD) -2 pomeni odštevanje “2'od celotne dolžine znaka.

Zgornji ukaz bo natisnil niz, začenši s številko znaka '2'do številke znaka'dolžina (0 USD) -2,'da odstranite prvi in ​​zadnji znak.

Odstranite znak iz niza s pomočjo izreza

Izreži je orodje ukazne vrstice, ki se običajno uporablja za izvleček dela besedila iz niza ali datoteke in tiskanje rezultata v standardni izhod. Ta ukaz lahko uporabite tudi za odstranjevanje znakov iz niza.

Za predstavitvene namene bomo uporabili vzorčni niz in ga nato napeljali do ukaza cut.

Odstranite prvi znak iz niza

Če želite odstraniti prvi znak iz niza, »Živjo kako si?" ukaz bi bil:

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

Ta ukaz bo natisnil niz, ki se začne z drugim znakom, medtem ko bo prvi znak odstranjen.

Odstranite prve štiri znake iz niza

Če želite odstraniti prve štiri znake iz niza “Živjo kako si?" ukaz bi bil:

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

Ta ukaz bo natisnil niz, začenši s petim znakom, medtem ko bo odstranil prve štiri znake.

Natisni niz med 2. in 5. znakom

Če želite natisniti niz »Živjo kako si?" med drugim in petim znakom, ukaz bi bil:

$ echo "zdravo, kako si?"| izreži -c 2-5

Ta ukaz bo natisnil niz, začenši od drugega do petega znaka, medtem ko bo odstranil preostale začetne in končne znake.

Odstranite zadnji znak iz niza

Če želite odstraniti zadnji znak iz niza “Živjo kako si?" uporabi rez ukaz z rev, kot sledi:

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

Ta ukaz deluje tako, da najprej obrne niz, nato izreže prvi znak in ga na koncu spet obrne, da dobite želeni izhod.

Odstranite zadnje štiri znake iz niza

Če želite odstraniti zadnje štiri znake iz vrsticeŽivjo kako si?" ukaz bi bil:

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

Ta ukaz deluje tako, da najprej obrne niz, nato izreže prve štiri znake in ga nato spet obrne, da dobite želeni izhod.

Odstranite prve in zadnje znake iz niza

Če želite odstraniti prvi in ​​zadnji znak iz niza “Živjo kako si?" uporabi rez ukaz z rev, kot sledi:

$ echo "zdravo svet!"| cut -c2- | rev | cut -c2- | rev

Ta ukaz deluje tako, da izreže prvi znak, nato obrne niz in izreže njegov prvi znak, nato pa ga znova obrne, da dobite želeni izhod.

Odstrani znak iz niza s tr

Ukaz tr (kratica za prevod) se uporablja za prevajanje, stiskanje in brisanje znakov iz niza. Tr lahko uporabite tudi za odstranjevanje znakov iz niza.

Za predstavitvene namene bomo uporabili vzorčni niz in ga nato napeljali v ukaz tr.

Odstrani vse pojavitve znakov

Z ukazom tr lahko iz niza odstranite vse pojavitve malih ali velikih črk. Na primer, če želite iz niza odstraniti vse pojavitve male črke 'h', bi bil ukaz:

$ echo "Pozdravljeni, kako ste?"| tr -d h

Če želite odstraniti vse pojavitve velike črke 'H' iz niza, bi bil ukaz:

$ echo "Pozdravljeni, kako ste?"| tr -d H

Za odstranjevanje malih ali velikih črk lahko uporabite tudi interpretirana zaporedja:

$ echo "Pozdravljeni, kako ste?"| tr -d [: zgornji:]

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

Odstrani vse pojavitve malih in velikih črk

Iz niza lahko odstranite tudi vse pojavitve malih in velikih črk. Naslednji ukaz bo na primer odstranil vse pojavitve znaka 'h', tako male kot velike.

$ echo "Pozdravljeni, kako ste?"| tr -d 'hH'

Odstrani vse pojavitve znakov v določenem obsegu

Če želite odstraniti vse pojavitve znakov iz niza v določenem obsegu 'd-h', bi bil ukaz:

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

Ta ukaz bo odstranil vse znake v obsegu 'd-h' (d, e, f, g, h) v nizu.

Zaključek

V Linuxu bo vedno več načinov za preprosto opravilo. Enako velja za odstranjevanje znakov iz niza. Ta članek vam je pokazal štiri različne načine za to, skupaj z nekaj primeri odstranjevanja neželenih znakov iz niza. Odločitev, katero orodje boste uporabili, je odvisna od vaših želja in, kar je še pomembneje, od tega, kaj želite doseči.

Namestite najnovejši Dolphin Emulator za Gamecube & Wii v Linux
Dolphin Emulator vam omogoča igranje izbranih iger Gamecube in Wii na osebnih računalnikih Linux (PC). Dolphin Emulator je prosto dostopen in odprtok...
Kako uporabljati GameConqueror Cheat Engine v Linuxu
Članek zajema vodnik o uporabi varalnice GameConqueror v Linuxu. Številni uporabniki, ki igrajo igre v sistemu Windows, pogosto uporabljajo aplikacijo...
Najboljši emulatorji igralne konzole za Linux
V tem članku bo navedena priljubljena programska oprema za emulacijo igralne konzole, ki je na voljo za Linux. Emulacija je sloj združljivosti program...