Android

Paano suriin kung ang isang string ay naglalaman ng isang substring sa bash

Advanced unix String handling Shortest longest substring match from front or back ## %%

Advanced unix String handling Shortest longest substring match from front or back ## %%

Talaan ng mga Nilalaman:

Anonim

Ang isa sa mga pinaka-karaniwang operasyon kapag nagtatrabaho sa mga string sa Bash ay upang matukoy kung ang isang string ay naglalaman ng isa pang string., ipapakita namin sa iyo ang ilang mga paraan upang suriin kung ang isang string ay naglalaman ng isang substring.

Paggamit ng Mga Wildcards

Ang pinakamadaling diskarte ay palibutan ang substring na may mga simbolo ng asterisk wildcard (asterisk) * at ihambing ito sa string. Ang Wildcard ay isang simbolo na ginamit upang kumatawan sa zero, isa o higit pang mga character.

Kung ang pagsubok ay bumalik na true , ang substring ay nakapaloob sa string.

Sa halimbawa sa ibaba ginagamit namin ang kung ang pahayag at ang pagkakapantay-pantay operator ( == ) upang suriin kung ang substring SUB ay matatagpuan sa loob ng string STR :

#!/bin/bash STR='GNU/Linux is an operating system' SUB='Linux' if]; then echo "It's there." fi

Kapag naisakatuparan ang script ay output:

It's there.

Gamit ang operator ng kaso

Sa halip na gamitin kung ang pahayag ay maaari mo ring gamitin ang pahayag ng kaso upang suriin kung kasama ang isang string o kabilang ang isang string.

#!/bin/bash STR='GNU/Linux is an operating system' SUB='Linux' case $STR in *"$SUB"*) echo -n "It's there.";; esac

Paggamit ng Regex Operator

Ang isa pang pagpipilian upang matukoy kung ang isang tinukoy na substring ay nangyayari sa loob ng isang string ay ang paggamit ng regex operator =~ . Kapag ginagamit ang operator na ito, ang tamang string ay isinasaalang-alang bilang isang regular na expression.

Ang panahon na sinusundan ng isang asterisk .* Tumutugma sa zero o higit pang mga naganap na anumang character maliban sa isang character na newline.

#!/bin/bash STR='GNU/Linux is an operating system' SUB='Linux' if]; then echo "It's there." fi

Ang script ay magbubunyi sa mga sumusunod:

It's there.

Paggamit ng Grep

Ang utos ng grep ay maaari ding magamit upang makahanap ng mga string sa ibang string.

Sa sumusunod na halimbawa, ipinapasa namin ang string $STR bilang isang input sa grep at suriin kung ang string na $SUB ay matatagpuan sa loob ng string string. Ang utos ay babalik sa true o false naaangkop.

#!/bin/bash STR='GNU/Linux is an operating system' SUB='Linux' if grep -q "$SUB" <<< "$STR"; then echo "It's there" fi

Ang pagpipilian na -q nagsasabi sa grep na maging tahimik, upang talikuran ang output.

Konklusyon

Ang pagsuri kung ang isang string ay naglalaman ng isang substring ay isa sa mga pinaka basic at madalas na ginagamit na operasyon sa pag-script ng Bash.

Matapos basahin ang tutorial na ito, dapat kang magkaroon ng isang mahusay na pag-unawa sa kung paano subukan kung ang isang string ay may kasamang ibang string. Maaari ka ring gumamit ng iba pang mga utos tulad ng awk o sed para sa pagsubok.

terminal ng bash