Bash Alisin ang Huling x Mga Character Mula sa String

Bash Remove Last X Characters From String



Ang isa ay maaaring kailangang magtanggal ng mga titik mula sa alinman sa isang string minsan. Kung ano ang maaaring maging kaso, nagsasama ang Linux ng maraming built-in, mga kapaki-pakinabang na tool para sa pag-alis ng mga titik na bumubuo ng isang teksto sa Bash. Ipinapakita ng artikulong ito kung paano magtanggal ng mga titik mula sa alinman sa isang string gamit ang mga pamamaraang iyon. Sa post na ito, ang mga tagubilin ay pinatakbo sa Ubuntu 20.04 Focal Fossa. Ang magkatulad na mga tagubilin ay maaaring patakbuhin sa anumang sistema ng Linux na may mga kagamitan na nabanggit sa itaas na naka-install. Upang maipatupad ang mga tagubilin, gagamitin namin ang karaniwang Terminal. Ang pintasan ng Ctrl + Alt + T ay magbubukas sa tool ng Terminal.

Paraan 01: Substring Way

Ang aming unang pamamaraan upang alisin ang mga titik o character mula sa isang string ay katulad ng paglikha ng isang substring mula sa isang orihinal. Samantala, ang terminal ay binuksan na; gagawa kami ng isang bash file upang idagdag ang aming bash code. Upang magawa natin ang pag-aalis ng character o paggawa ng substring dito. Kaya, ginamit namin ang built-in na tagubilin sa ugnayan sa aming shell upang lumikha ng isang bash file.









Tulad ng file ay mabilis na nabuo sa home folder ng Ubuntu 20.04, buksan ito sa ilang editor upang mai-edit. Kaya, pipiliin namin ang editor ng GNU upang buksan ang file ng file.sh tulad ng sa ibaba.







Kopyahin ang code na ipinakita sa ibaba dito. Naglalaman ang code na ito ng bash extension sa simula, at pagkatapos nito, idineklara namin ang isang string variable val na may halaga ng string. Sa kabilang linya, ginagamit namin ang pariralang echo upang ipakita ang variable na ito sa terminal. Ang tunay na gawain ay nagsisimula mula dito. Pinasimuno namin ang isang bagong variable at bibigyan ito ng isang halaga na isang substring ng orihinal na variable val. Ginawa namin ito sa pamamagitan ng pagbanggit ng -14 sa mga brace pagkatapos ng dobleng mga colon. Sinasabi nito sa tagatala na kailangan nitong alisin ang huling 14 na titik mula sa orihinal na string na FirstWorldCountries. Ang natitirang mga titik ay mai-save sa variable ng bago. Sa huling linya, ang echo ay ginamit upang mai-print ang bagong variable na bago.



Ang wastong pagpapatupad ng isang file file.sh gamit ang bash command ay lalabas tulad ng inaasahan. Una, ipinapakita nito ang halaga ng unang string variable val, at pagkatapos nito, ipinapakita nito ang halaga ng bagong nilikha na string mula sa isang unang variable ayon sa ipinakitang output.

Paraan 02: Paggamit ng Mga Espesyal na Simbolo

Ang isa pang simple at madaling paraan upang alisin ang mga huling letra o character sa anumang string ay sa pamamagitan ng mga espesyal na simbolo o character, hal., Mga porsyento ng simbolo ng porsyento at mga marka ng tanong. Kaya, sa oras na ito gagamit kami ng porsyento at marka ng tanong upang alisin ang mga character mula sa anumang string. Samakatuwid, binuksan na namin ang parehong file upang ma-update ang bash script gamit ang isang GNU Nano editor. Ang pangkalahatang code ay pareho, ngunit ang variable na bagong bahagi ay medyo magkakaiba. Gumamit kami ng isang tanda ng porsyento upang ipaalam sa system na ang mga nabanggit na bilang ng mga marka ng tanong ay kumakatawan sa bilang ng mga character mula sa isang variable val na aalisin pagkatapos ng porsyentong sign na ito. Maaari mong makita na nagdagdag kami ng 9 na simbolo ng marka ng tanong. Nangangahulugan ito na ang huling 9 na character mula sa string na FirstWorldCountries ay aalisin, at ang natitirang string ay magiging FirstWorld. Ang natitirang string na ito ay mai-save sa isang variable na bago.

Kapag naisagawa na namin ang na-update na bash file, ang output ay inaasahan. Ipinapakita nito ang orihinal na string mula sa unang variable at ang halaga ng pangalawang variable, bago na nilikha mula sa variable val.

Paraan 03: Paggamit ng Sed

Ang Sed ay isang kapaki-pakinabang at mabisang tool para sa pagbabago ng mga pagkakasunud-sunod ng teksto. Iyon ay isang hindi interactive na kapaligiran sa pag-unlad na hinahayaan kang gumana sa pag-input ng data at gumawa ng mga simpleng pagbabago sa teksto. Maaari mo ring gamitin ang sed upang tanggalin ang mga titik mula sa mga teksto na hindi mo gusto. Gagamitin namin ang isang halimbawa ng string at i-ruta ito sa utos ng sed para sa mga hangarin sa paglalarawan. Maaari kang magtanggal ng isang partikular na character mula sa ilang uri ng string na may sed. Kaya, ginamit namin ang simpleng linya ng isang string sa loob ng pahayag ng echo. Gumamit kami ng sed upang alisin ang titik A mula sa nabanggit na string. Tiyaking sundin ang syntax na ‘s / string_to_be_remaced //’. Ipinapakita ng output ang letrang A na tinanggal.

Upang alisin ang buong salitang Aqsa nabanggit namin ang una at huling karakter ng isang salita na may mga tuldok sa loob upang kumatawan sa mga nawawalang titik. Ipinapakita ng output ang string gamit ang pagtanggal ng salitang Aqsa.

Upang alisin ang anumang bilang ng mga huling character mula sa isang string, banggitin ang bilang ng mga tuldok ayon sa iyong kinakailangan bago ang simbolo ng dolyar tulad ng ipinakita.

Paraan 04: Paggamit ng Awk

Ang Awk ay isang sopistikadong wika ng scripting na maaaring magamit upang tumugma sa mga pattern at proseso ng mga teksto. Maaari mong gamitin ang Awk upang ilipat at baguhin ang input sa iba't ibang mga iba't ibang paraan. Maaari mo ring tanggalin ang mga titik mula sa mga string gamit ang awk. Awk parang medyo iba sa sed. Sa pagkakataong ito ay binago namin ang string kasama si Aqsa Yasin. Ang pagpapaandar ng awk ay gagawa ng substring sa pamamagitan ng pamamaraan ng substr at i-print ito sa terminal. Ang haba ng pagpapaandar ay ginamit upang ipakita ang bilang ng mga titik na tinanggal mula sa nabanggit na string. Dito, ang haba ($ 0) -5 ay nangangahulugang alisin ang huling 5 mga character ng isang string, at ang natitira ay isang bahagi ng isang substring upang mai-print.

Sinubukan naming alisin ang huling 9 na character mula sa isang string na Aqsa Yasin at nakuha ang A bilang output substring.

Paraan 05: Paggamit ng Cut

Ang cut ay tila isang command-line utility para sa pagkuha ng isang piraso ng teksto mula sa isang parirala o dokumento at i-print ito sa karaniwang output. Ang operasyon na ito ay maaari ring magamit upang alisin ang mga titik mula sa ilang uri ng string. Gumagamit kami ng isang halimbawa ng parirala at ipasa ito sa cut na tagubilin para sa mga layunin sa pagsubok. Kaya ginamit namin ang parirala ng Aqsa Yasin at ipinasa ito sa cut query. Matapos ang watawat –c, tinukoy namin ang saklaw ng mga index para sa isang string upang maputol ang mga character mula sa isang nabanggit na string. Ipapakita nito ang mga character mula sa index 1 hanggang index 5. Ang index 5 ay naibukod dito. Ipinapakita ng output ang unang 4 na character bilang Aqsa.

Sa pagkakataong ito gagamitin namin ang iba pang tagubilin sa hiwa. Ginamit namin ang pagpapaandar ng rev upang baligtarin ang string. Matapos ang pabaliktad ng isang string, puputulin namin ang unang character mula sa isang string. Ang watawat -c2-nangangahulugang ang aming substring ay magiging pasulong na character 2. Pagkatapos nito, ang reverse function ay ginagamit muli upang ibalik ang string. Kaya, sa oras na ito nakuha namin ang orihinal na string sa pag-alis ng huling character.

Upang alisin ang huling 7 character, kakailanganin mong banggitin ang -c7-sa cut command habang ginagamit din ang reverse function.

Konklusyon:

Mayroong oras higit sa isang pamamaraan upang makagawa ng isang pangunahing gawain sa Linux. Katulad nito, posible ang pagtanggal ng mga character sa isang teksto. Ipinakita ng artikulong ito ang limang magkakaibang pamamaraan para sa pag-aalis ng hindi kanais-nais na mga character sa isang string, pati na rin ang ilang mga pagkakataon. Anumang tool na pinili mo ay ganap na nakasalalay sa iyong pinili at, higit na mahalaga, kung ano ang nais mong makamit.