Karakterek eltávolítása a karakterláncból a Bash -ban

Removing Characters From String Bash



Időnként előfordulhat, hogy el kell távolítania a karaktereket a karakterláncból. Bármi legyen is az oka, a Linux különféle beépített, praktikus eszközöket kínál, amelyek lehetővé teszik a karakterek eltávolítását a karakterláncból a Bash-ban. Ez a cikk bemutatja, hogyan használhatja ezeket az eszközöket karakterek eltávolítására a karakterláncból.

A cikk a következők végrehajtását ismerteti:







  • Távolítsa el a karaktert a karakterláncból a sed használatával
  • Távolítsa el a karaktert a karakterláncból az awk használatával
  • Távolítsa el a karaktert a karakterláncból a vágás használatával
  • Távolítsa el a karaktert a karakterláncból a tr segítségével

Az ebben a cikkben bemutatott parancsokat az Ubuntu 20.04 Focal Fossa programban hajtották végre. Ugyanezek a parancsok más Linux disztribúciókon is végrehajthatók, amelyek rendelkeznek a fenti eszközökkel. A parancsok futtatásához az alapértelmezett Terminal alkalmazást fogjuk használni. A Terminal alkalmazást a Ctrl+Alt+T billentyűparancsokkal érheti el.



Karakterek eltávolítása a karakterláncból a sed használatával

A Sed egy hatékony és praktikus segédprogram szövegfolyamok szerkesztésére. Ez egy nem interaktív szövegszerkesztő, amely lehetővé teszi alapvető szövegkezelések végrehajtását a beviteli folyamokon. A sed használatával is eltávolíthatja a nem kívánt karaktereket a karakterláncokból.



Bemutató célokra egy minta karakterláncot használunk, majd a sed parancshoz csövezzük.





Távolítsa el a karaktert a karakterláncból

A sed használatával eltávolíthat egy adott karaktert a karakterláncból. Például a h eltávolítása a karakterláncból Helló, hogy vagy? a parancs ez lenne:

$kidobta 'Helló, hogy vagy?' | sed 'SH//'

Ez csak a „h” első előfordulását távolítja el a karakterláncból.
Távolítsa el a karaktert a karakterláncból1
Ha el szeretné távolítani a „h” összes előfordulását a karakterláncból, használja a következő parancsot:



$kidobta 'Helló, hogy vagy?' | sed 's/h // g'

Ahol g globálisat jelent. Eltávolítja a karakterlánc összes „h” előfordulását.
Távolítsa el a karaktert a karakterláncból2

Távolítsa el az első karaktert a karakterláncból

Az első karakter eltávolítása a karakterláncból Helló, hogy vagy? a parancs ez lenne:

$kidobta 'Helló, hogy vagy?' | sed 's /^.//' fájlt

Ahol a (.) Pontosan egyetlen karakternek felel meg, és (^) a karakterlánc elején lévő bármely karakternek.
Távolítsa el az első karaktert a karakterláncból

Távolítsa el az utolsó karaktert a karakterláncból

Az utolsó karakter eltávolítása a karakterláncból Helló, hogy vagy? a parancs ez lenne:

$kidobta 'Helló, hogy vagy?' | sed 's /.$//'

Ahol ( . ) pontosan egy karakternek felel meg, és ($) a karakterlánc végén található bármely karakternek.
Távolítsa el az utolsó karaktert a karakterláncból

Távolítsa el az első és az utolsó karaktert a karakterláncból

Az első és utolsó karakter eltávolítása a karakterláncból Helló, hogy vagy? a parancs ez lenne:

$kidobta 'Helló, hogy vagy?' | sed 's /^.//; s /.$//'

Távolítsa el az első és az utolsó karaktert a karakterláncból

Karakterek eltávolítása a karakterláncból az awk használatával

Az Awk egy erőteljes szkriptnyelv, amelyet a minták illesztésére és a szövegfeldolgozásra használnak. Az Awk lehetővé teszi a szöveg különböző módon történő szűrését és átalakítását. Az awk segítségével eltávolíthatja a karaktereket a karakterláncokból.

Bemutató célokra egy minta karakterláncot használunk, majd az awk parancsra csövezzük.

Távolítsa el az első karaktert a karakterláncból

Az első karakter eltávolítása a karakterláncból Helló, hogy vagy? a parancs ez lenne:

$kidobta 'Helló, hogy vagy?' | awk '{print substr ($ 0, 2)}'

Ahol ($ 0) a teljes cél karakterlánc, és (2) a karakter kezdő pozíciója. A fenti parancs eltávolítja az első karaktert, a „h” karakterszámot „1”, és visszaadja a cél karakterláncot, amely a második karakterrel kezdődik, „e”.
Távolítsa el az első karaktert a karakterláncból

Távolítsa el az első két karaktert a karakterláncból

A karakterlánc elejéről bizonyos számú karaktert is eltávolíthat. Például, hogy eltávolítsa az első két karaktert a karakterláncból Helló, hogy vagy? a parancs ez lenne:

$kidobta 'Helló, hogy vagy?' | awk '{print substr ($ 0, 3)}'

A fenti parancs eltávolítja az első két karaktert, az „ő” -t vagy az „1 és 2” karakterszámokat, és visszaadja a „3” vagy „l” karaktersorral kezdődő karakterláncot.
Távolítsa el az első két karaktert a karakterláncból

Távolítsa el az utolsó karaktert a karakterláncból

Az utolsó karakter eltávolításához Helló, hogy vagy? a parancs ez lenne:

$kidobta 'Helló, hogy vagy?' | awk '{print substr ($ 0, 1, length ($ 0) -1)}')

Ahol hossza (0 USD) -1 levonást jelent ' 1 ’A teljes karakterhosszból.

A fenti parancs kinyomtatja a karakterlánccal kezdődő karakterláncot ' 1 ’Ig hossza (0 USD) -1 levetkőzni az utolsó karaktert.

Vannak ' 19 ”Karaktereket (beleértve a szóközöket is) a fenti karakterláncban. A parancs úgy működik, hogy minden karaktert kinyomtat, kezdve a 'karakterrel' 1 'És a karakterig' 18 , 'Az utolsó karakter eltávolítása közben' 19 . ”

rmv last char frm string

Távolítsa el az utolsó két karaktert a karakterláncból

Az utolsó két karakter eltávolításához Helló, hogy vagy? a parancs ez lenne:

$kidobta 'Helló, hogy vagy?' | awk '{print substr ($ 0, 1, length ($ 0) -2)}')

Ahol hossza (0 USD) -2 levonást jelent ' 2 ’A teljes karakterhosszból.

A fenti parancs kinyomtatja a karakterláncot, kezdve a karakter számával ' 1 'És a karakterszámig' hossza (0 USD) -2 , ’A karakterlánc utolsó két karakterének eltávolításához.
Távolítsa el az utolsó két karaktert a karakterláncból

Távolítsa el az első és az utolsó karaktert is a karakterláncból

Az első és az utolsó karakter eltávolítása a karakterláncból Helló, hogy vagy? a parancs ez lenne:

$kidobta 'Helló, hogy vagy?' | awk '{print substr ($ 0, 2, length ($ 0) - 2)}')

Ahol hossza (0 USD) -2 levonást jelent ' 2 ’A teljes karakterhosszból.

A fenti parancs kinyomtatja a karakterláncot, kezdve a karakter számával ' 2 'Karakterszámig' hossza (0 USD) -2 , ’Az első és az utolsó karakter eltávolításához.

Távolítsa el az első és az utolsó karaktert is a karakterláncból

Távolítsa el a karaktert a karakterláncból a vágás használatával

A Cut egy parancssori eszköz, amelyet általában a szöveg egy részének kibontására használnak egy karakterláncból vagy fájlból, és az eredményt szabványos kimenetre nyomtatják. Ezzel a paranccsal karaktereket is eltávolíthat egy karakterláncból.

Bemutató célokra egy minta karakterláncot használunk, majd a cut parancsra csövezzük.

Távolítsa el az első karaktert a karakterláncból

Ha el szeretné távolítani az első karaktert a karakterláncból, Helló, hogy vagy? a parancs ez lenne:

$kidobta 'Helló, hogy vagy?' | vágott -c 2-

Ez a parancs kinyomtatja a karakterláncot, kezdve a második karakterrel, miközben eltávolítja az első karaktert.
rmv vágás -c

Távolítsa el az első négy karaktert a karakterláncból

Az első négy karakter eltávolítása a karakterláncból Helló, hogy vagy? a parancs ez lenne:

$kidobta 'Helló, hogy vagy?' | vágott -c 5-

Ez a parancs kinyomtatja a karakterláncot az ötödik karaktertől kezdve, miközben eltávolítja az első négy karaktert.
Távolítsa el az első négy karaktert a karakterláncból

Nyomtatási karakterlánc a 2. és az 5. karakter között

A karakterlánc kinyomtatásához Helló, hogy vagy? a második és az ötödik karakter között , a parancs ez lenne:

$kidobta 'Helló, hogy vagy?' | vágott -c 2-5

Ez a parancs kinyomtatja a karakterláncot, kezdve a második karaktertől az ötödik karakterig, miközben eltávolítja a többi kezdő és befejező karaktert.
rmv 2. és 5. c2

Távolítsa el az utolsó karaktert a karakterláncból

Az utolsó karakter eltávolítása a karakterláncból Helló, hogy vagy? használja a vágott paranccsal fordulat , alábbiak szerint:

$kidobta 'Helló, hogy vagy?' | fordulat | vágott -c2- | fordulat

Ez a parancs úgy működik, hogy először megfordítja a karakterláncot, majd elvágja az első karaktert, végül ismét megfordítja, hogy megkapja a kívánt kimenetet.
02Távolítsa el az utolsó karaktert a karakterláncból

Távolítsa el az utolsó négy karaktert a karakterláncból

Az utolsó négy karakter eltávolítása a sorból Helló, hogy vagy? a parancs ez lenne:

$kidobta 'Helló, hogy vagy?' | fordulat | vágott -c5- | fordulat

Ez a parancs úgy működik, hogy először megfordítja a karakterláncot, majd levágja az első négy karaktert, majd ismét megfordítja, hogy megkapja a kívánt kimenetet.
rmv utolsó négy karakter

Távolítsa el az első és az utolsó karaktert a karakterláncból

Az első és az utolsó karakter eltávolítása a karakterláncból Helló, hogy vagy? használja a vágott paranccsal fordulat , alábbiak szerint:

$kidobta 'Helló Világ!' | vágott -c2- | fordulat | vágott -c2- |fordulat

Ez a parancs úgy működik, hogy kivágja az első karaktert, majd megfordítja a karakterláncot, és levágja az első karaktert, majd ismét megfordítja, hogy megkapja a kívánt kimenetet.
rmv első és utolsó

Távolítsa el a karaktert a karakterláncból a tr

A tr parancs (rövidítve a fordításra) karakterek fordítására, összenyomására és törlésére szolgál. A tr billentyűvel karaktereket is eltávolíthat egy karakterláncból.

Bemutatás céljából egy minta karakterláncot használunk, majd a tr parancshoz csövezzük.

Távolítsa el a karakter minden előfordulását

A tr paranccsal eltávolíthatja a karakterláncból az összes előforduló kis- vagy nagybetűt. Például, ha el szeretné távolítani a karakterláncból a „h” kisbetű összes előfordulását, a parancs a következő lenne:

$kidobta 'Helló, hogy vagy?' | NS -dh

minden jelenség eltávolítása 01

Hasonlóképpen, a „H” nagybetű minden előfordulásának eltávolításához a karakterláncból a parancs a következő lenne:

$kidobta 'Helló, hogy vagy?' | NS -dH

A kis- vagy nagybetűk eltávolításához értelmezett sorozatokat is használhat:

$kidobta 'Helló, hogy vagy?'| NS -d [:felső:]

előfordulásai alacsonyabbak

$kidobta 'Helló, hogy vagy?'| NS -d [:Alsó:]

előfordulás felső

Távolítsa el a kis- és nagybetűk összes előfordulását

A karakterláncból eltávolíthatja a kis- és nagybetűs karakterek összes előfordulását is. Például a következő parancs eltávolítja a „h” karakter összes előfordulását, mind a kis-, mind a nagybetűket.

$kidobta 'Helló, hogy vagy?' | NS -d'HH'

felső és alsó előfordulások

Távolítsa el az összes előforduló karaktert egy adott tartományban

Ha el szeretné távolítani a karakterek minden előfordulását a „d-h” tartományban lévő karakterláncból, a parancs a következő lesz:

$kidobta 'Helló, hogy vagy?' | NS -d 'd-h'

Ez a parancs eltávolítja a karakterlánc „d-h” tartományának (d, e, f, g, h) összes karakterét.
meghatározott tartomány fordul elő

Következtetés

Linux alatt mindig több módja lesz egy egyszerű feladat elvégzésének. Ugyanez vonatkozik a karakterek eltávolítására a karakterláncból. Ez a cikk négy különböző módszert mutatott be erre, valamint néhány példát a nem kívánt karakterek eltávolítására a karakterláncból. Az, hogy melyik eszközt használja, az Ön preferenciáitól és - ami még fontosabb - attól függ, hogy mit szeretne elérni.