Inaalis ang Mga Character mula sa String in Bash

Removing Characters From String Bash



Sa mga oras, maaaring kailanganin mong alisin ang mga character mula sa isang string. Anuman ang dahilan ay, nagbibigay sa iyo ang Linux ng iba't ibang mga built-in, madaling gamiting tool na nagbibigay-daan sa iyo upang alisin ang mga character mula sa isang string sa Bash. Ipinapakita sa iyo ng artikulong ito kung paano gamitin ang mga tool na iyon upang alisin ang mga character mula sa isang string.

Saklaw ng artikulo kung paano maisagawa ang sumusunod:







  • Alisin ang character mula sa string gamit ang sed
  • Alisin ang character mula sa string gamit ang awk
  • Alisin ang character mula sa string gamit ang cut
  • Alisin ang character mula sa string gamit ang tr

Ang mga utos na ipinakita sa artikulong ito ay ginanap sa Ubuntu 20.04 Focal Fossa. Ang mga parehong utos ay maaari ding isagawa sa iba pang mga pamamahagi ng Linux na magagamit ang mga tool sa itaas. Gagamitin namin ang default na application ng Terminal upang patakbuhin ang mga utos. Maaari mong ma-access ang application ng Terminal gamit ang pintasan sa keyboard ng Ctrl + Alt + T.



Alisin ang Mga Character mula sa String Gamit ang sed

Ang Sed ay isang malakas at madaling gamiting utility na ginagamit para sa pag-edit ng mga stream ng teksto. Ito ay isang hindi interactive na editor ng teksto na nagbibigay-daan sa iyo upang maisagawa ang pangunahing mga manipulasyong teksto sa mga stream ng pag-input. Maaari mo ring gamitin ang sed upang alisin ang mga hindi ginustong mga character mula sa mga string.



Para sa mga layunin ng pagpapakita, gagamit kami ng isang sample na string at pagkatapos ay i-tubo ito sa utos na sed.





Alisin ang Tiyak na Character mula sa String

Gamit ang sed, maaari mong alisin ang isang tukoy na character mula sa isang string. Halimbawa, upang alisin ang h mula sa string hello, kamusta ang utos ay:

$itinapon 'hello, kumusta ka?' | sed 's / h //'

Aalisin lamang nito ang unang paglitaw ng 'h' sa string.
Alisin ang Tiyak na Character mula sa String1
Upang alisin ang lahat ng mga paglitaw ng 'h' mula sa string, gamitin ang sumusunod na utos:



$itinapon 'hello, kumusta ka?' | sed 's / h // g'

Kung saan g nangangahulugang pandaigdigan. Aalisin nito ang lahat ng mga paglitaw ng 'h' sa string.
Alisin ang Tiyak na Character mula sa String2

Alisin ang Unang Character mula sa String

Upang alisin ang unang character mula sa string hello, kamusta ang utos ay:

$itinapon 'hello, kumusta ka?' | sed 's / ^^.//' file

Kung saan (.) Tumutugma nang eksakto sa isang solong character at (^) tumutugma sa anumang character sa simula ng string.
Alisin ang Unang Character mula sa String

Alisin ang Huling Character mula sa String

Upang alisin ang huling character mula sa string hello, kamusta ang utos ay:

$itinapon 'hello, kumusta ka?' | sed 's /.$//'

Kung saan ( . ) eksaktong tumutugma sa isang solong character at ($) tumutugma sa anumang character sa dulo ng string.
Alisin ang Huling Character mula sa String

Alisin ang Una at Huling Character mula sa String

Upang alisin ang una at huling character mula sa string hello, kamusta ang utos ay:

$itinapon 'hello, kumusta ka?' | sed 's / ###.//; s /.$//'

Alisin ang Una at Huling Character mula sa String

Alisin ang Mga Character mula sa String Gamit ang awk

Ang Awk ay isang malakas na wika ng scripting na ginamit para sa pagtutugma ng pattern, kasama ang pagproseso ng teksto. Pinapayagan ka ng Awk na mag-filter at magbago ng teksto sa iba't ibang mga paraan. Maaari mo ring gamitin ang awk upang alisin ang mga character mula sa mga string.

Para sa mga layunin ng pagpapakita, gagamit kami ng isang sample na string at pagkatapos ay i-pipe ito sa awk command.

Alisin ang Unang Character Mula sa isang String

Upang alisin ang unang character mula sa string hello, kamusta ang utos ay:

$itinapon 'hello, kumusta ka?' | ang awkward '{print substr ($ 0, 2)}'

Kung saan ($ 0) ang buong target na string at (2) ang posisyon ng panimulang karakter. Inaalis ng utos sa itaas ang unang character, 'h,' character number na '1,' at ibinabalik ang target na string na nagsisimula sa pangalawang character, 'e.'
Alisin ang Unang Character Mula sa isang String

Alisin ang Unang Dalawang Mga Character mula sa String

Maaari mo ring alisin ang isang tukoy na bilang ng mga character mula sa simula ng isang string. Halimbawa, upang alisin ang unang dalawang character mula sa string hello, kamusta ang utos ay:

$itinapon 'hello, kumusta ka?' | ang awkward '{print substr ($ 0, 3)} ’

Aalisin ng utos sa itaas ang unang dalawang character, 'he,' o mga numero ng character na '1 at 2,' at ibabalik ang target na string na nagsisimula sa bilang ng character na '3,' o 'l.'
Alisin ang Unang Dalawang Mga Character mula sa String

Alisin ang Huling Character mula sa String

Upang alisin ang huling character mula sa hello, kamusta ang utos ay:

$itinapon 'hello, kumusta ka?' | ang awkward '{print substr ($ 0, 1, haba ($ 0) -1)}'

Kung saan haba ($ 0) -1 nangangahulugang ibawas ‘ 1 ’Mula sa kabuuang haba ng character.

I-print ng utos sa itaas ang string na nagsisimula sa numero ng character na ‘ 1 ' hanggang sa haba ($ 0) -1 upang hubarin ang huling karakter.

May mga ‘ 19 ’Character (kabilang ang mga puwang) sa string sa itaas. Gagana ang utos sa pamamagitan ng pag-print ng lahat ng mga character, nagsisimula sa character na ‘ 1 'At hanggang sa character na' 18 , ’Habang inaalis ang huling karakter na‘ 19 . ’

rmv huling char frm string

Alisin ang Huling Dalawang Mga Character mula sa String

Upang alisin ang huling dalawang character mula sa hello, kamusta ang utos ay:

$itinapon 'hello, kumusta ka?' | ang awkward '{print substr ($ 0, 1, haba ($ 0) -2)}'

Kung saan haba ($ 0) -2 nangangahulugang ibawas ‘ 2 ’Mula sa kabuuang haba ng character.

I-print ng utos sa itaas ang string, nagsisimula sa numero ng character na ‘ 1 'At hanggang sa character number na' haba ($ 0) -2 , ’Upang alisin ang huling dalawang character sa string.
Alisin ang Huling Dalawang Mga Character mula sa String

Alisin ang Parehong Una at Huling Mga Character mula sa String

Upang alisin ang pareho at ang huling mga character mula sa string hello, kamusta ang utos ay:

$itinapon 'hello, kumusta ka?' | ang awkward '{print substr ($ 0, 2, haba ($ 0) - 2)}'

Kung saan haba ($ 0) -2 nangangahulugang ibawas ‘ 2 ’Mula sa kabuuang haba ng character.

I-print ng utos sa itaas ang string, nagsisimula sa numero ng character na ‘ 2 'Hanggang sa character number' haba ($ 0) -2 , ’Upang alisin ang una at huling karakter.

Alisin ang Parehong Una at Huling Mga Character mula sa String

Alisin ang Character mula sa String Gamit ang hiwa

Ang Cut ay isang tool na command-line na karaniwang ginagamit upang kumuha ng isang bahagi ng teksto mula sa isang string o file at mai-print ang resulta sa isang karaniwang output. Maaari mo ring gamitin ang utos na ito para sa pag-aalis ng mga character mula sa isang string.

Para sa mga layunin ng pagpapakita, gagamit kami ng isang sample na string at pagkatapos ay i-tubo ito sa cut command.

Alisin ang Unang Character mula sa String

Upang alisin ang unang character mula sa string, hello, kamusta ang utos ay:

$itinapon 'hello, kumusta ka?' | putol -c 2-

Ang print na ito ay mai-print ang string, nagsisimula sa pangalawang character, habang inaalis ang unang character.
rmv cut -c

Alisin ang Unang Apat na Mga Character mula sa String

Upang alisin ang unang apat na character mula sa string hello, kamusta ang utos ay:

$itinapon 'hello, kumusta ka?' | putol -c 5-

Ang print na ito ay mai-print ang string, simula sa ikalimang character, habang inaalis ang unang apat na character.
Alisin ang Unang Apat na Mga Character mula sa String

I-print ang String Sa Pagitan ng Ika-2 at Ika-5 na Character

Upang mai-print ang string hello, kamusta sa pagitan ng pangalawa at ikalimang character , ang utos ay:

$itinapon 'hello, kumusta ka?' | putol -c 2-5

Ang print na ito ay mai-print ang string, simula sa pangalawang character at hanggang sa ikalimang character, habang inaalis ang natitirang mga nagsisimula at nagtatapos na character.
rmv 2nd at 5th c2

Alisin ang Huling Character mula sa String

Upang alisin ang huling character mula sa string hello, kamusta gamitin ang putol utos sa rev , tulad ng sumusunod:

$itinapon 'hello, kumusta ka?' | rev | putol -c2- | rev

Gumagawa ang utos na ito sa pamamagitan ng unang pag-reverse ng string, pagkatapos ay pag-cut ng unang character, at sa wakas ay baligtarin ito muli upang maibigay sa iyo ang nais na output.
02 Alisin ang Huling Character mula sa String

Alisin ang Huling Apat na Mga Character mula sa String

Upang alisin ang huling apat na character mula sa linya hello, kamusta ang utos ay:

$itinapon 'hello, kumusta ka?' | rev | putol -c5- | rev

Gumagawa ang utos na ito sa pamamagitan ng unang pag-baligtad ng string, pagkatapos ay pag-cut ng unang apat na character, at pagkatapos ay baligtarin ito muli upang maibigay sa iyo ang nais na output.
rmv huling apat na chars

Alisin ang Una at Huling Mga Character mula sa String

Upang alisin ang una at huling mga character mula sa string hello, kamusta gamitin ang putol utos sa rev , tulad ng sumusunod:

$itinapon 'hello world!' | putol -c2- | rev | putol -c2- |rev

Gumagawa ang utos na ito sa pamamagitan ng paggupit sa unang tauhan, pagkatapos ay baligtarin ang string at i-cut ang unang character nito, at pagkatapos ay baligtarin itong muli upang mabigyan ka ng nais na output.
rmv muna at huli

Alisin ang Character mula sa String Gamit ang tr

Ang utos ng tr (maikli para sa pagsasalin) ay ginagamit upang isalin, pisilin, at tanggalin ang mga character mula sa isang string. Maaari mo ring gamitin ang tr upang alisin ang mga character mula sa isang string.

Para sa mga layunin ng pagpapakita, gagamit kami ng isang sample na string at pagkatapos ay i-tubo ito sa utos ng tr.

Alisin ang Lahat ng Mga Kaganapan ng Character

Gamit ang tr command, maaari mong alisin ang lahat ng mga paglitaw ng mga maliliit o malalaking character mula sa iyong string. Halimbawa, upang alisin ang lahat ng mga paglitaw ng maliit na character na 'h' mula sa string, ang utos ay:

$itinapon 'Kumusta, kumusta ka?' | NS -dh

alisin ang lahat ng mga pangyayari 01

Katulad nito, upang alisin ang lahat ng mga paglitaw ng malalaking character na 'H' mula sa string, ang utos ay:

$itinapon 'Kumusta, kumusta ka?' | NS -dH

Maaari mo ring gamitin ang mga binibigyang kahulugan na pagkakasunud-sunod upang alisin ang mga maliliit o malalaking titik:

$itinapon 'Kumusta, kumusta ka?'| NS -d [: itaas:]

mas mababa ang mga pangyayari

$itinapon 'HELLO, Kumusta ka?'| NS -d [: mas mababa:]

pangyayari sa itaas

Alisin ang Lahat ng Mga Pangyayari ng Mga character na Maliit at Mataas na Mataas

Maaari mo ring alisin ang lahat ng mga paglitaw ng parehong maliliit at malalaking character mula sa isang string. Halimbawa, aalisin ng sumusunod na utos ang lahat ng mga paglitaw ng character na 'h,' kapwa maliit at maliit na titik.

$itinapon 'Kumusta, kumusta ka?' | NS -d'HH'

pangyayari sa itaas at sa ibaba

Alisin ang Lahat ng Mga Pangyayari sa Mga Character sa isang Tiyak na Saklaw

Upang alisin ang lahat ng mga paglitaw ng mga character mula sa isang string sa tukoy na saklaw na 'd-h,' ang utos ay:

$itinapon 'hello, kumusta ka?' | NS -d 'd-h'

Aalisin ng utos na ito ang lahat ng mga character sa saklaw na ‘d-h’ (d, e, f, g, h) sa string.
mga tiyak na saklaw ng mga pangyayari

Konklusyon

Sa Linux, palaging magkakaroon ng higit sa isang paraan upang makamit ang isang simpleng trabaho. Totoo rin ito sa pag-aalis ng mga character mula sa isang string. Ipinakita sa iyo ng artikulong ito ang apat na magkakaibang paraan upang magawa ito, kasama ang ilang mga halimbawa para sa pag-aalis ng mga hindi gustong character mula sa isang string. Ang pagpapasya kung aling tool ang gagamitin lahat ay nakasalalay sa iyong mga kagustuhan at, higit sa lahat, sa kung ano ang nais mong makamit.