HOWTO · Bash

Bash에서 문자열에 하위 문자열이 포함되어 있는지 확인

문자열에 하위 문자열이 포함되어 있는지 여부를 확인하는 Bash 프로그래밍 자습서.

문자열에서 부분 문자열을 찾는 것은 문자열에서 가장 자주 사용되는 작업입니다. 이 작업을 수행하는 방법에는 여러 가지가 있습니다.

이 기사에서는 주어진 문자열에 특정 하위 문자열이 포함되어 있는지 여부를 찾기 위한 여러 Bash 스크립트 기반 구현을 볼 것입니다.

case 조건문 사용(방법 1)

case는 bash의 조건문이며 스크립트에서 조건부 블록을 구현하는 데 사용할 수 있습니다. 이 문은 bash에서 하위 문자열을 찾는 데 사용할 수 있습니다.

스크립트:

#!/bin/bash

str='This is a bash tutorial'
substr='bash'

case $str in

  *"$substr"*)
    echo  "str contains the substr"
    ;;
esac

strsubstr 2개의 문자열이 있습니다. strsubstr이 포함되어 있는지 알아보기 위해 case 문을 적용했습니다.

출력:

사용 사례 조건문

if 문에서 와일드카드 사용(방법 2)

if 문에서 와일드카드를 사용하여 문자열에서 부분 문자열을 찾을 수도 있습니다. 하위 문자열을 찾는 가장 간단한 방법은 하위 문자열 주위에 와일드카드 기호 별표(*)를 넣고 실제 문자열과 비교하는 것입니다.

스크립트:

#!/bin/bash

str='This is a bash tutorial'
substr='tutorial'
if [[ "$str" == *"$substr"* ]]; then
  echo "String contains the sunstring"
else
  echo "String does'nt contains the substring"
fi

출력:

if 문에서 와일드카드 사용

Bash의 grep 명령 사용(방법 3)

grep 명령은 파일이나 문자열에서 무언가를 찾는 데에도 사용됩니다. 그것은 grep 명령이 출력을 표시하지 않도록 지시하는 -q 옵션을 가지고 있습니다. ’true’ 또는 ‘false’를 반환합니다.

스크립트:

#!/bin/bash

str='This is a bash tutorial'
substr='tutorial'
if grep -q "$substr" <<< "$str"; then
  echo "String contains the substring"
fi

출력:

Bash의 grep 명령 사용

정규식 연산자(~=) 사용(방법 4)

두 문자열을 비교하고 문자열에 하위 문자열이 포함되어 있는지 여부를 비교할 수 있는 정규식 연산자(~=)라는 또 다른 연산자가 있습니다.

스크립트:

#!/bin/bash

str='This is a bash tutorial'
substr='bash'
if [[ "$str" =~ .*"$substr".* ]]; then
  echo "String contains the substring"
fi

조건문에서 정규식 연산자는 오른쪽 문자열을 정규식으로 만들고 .* 기호는 문자열에서 0개 이상의 하위 문자열을 비교하는 것을 의미합니다.

출력:

정규식 연산자 사용

따라서 문자열에서 부분 문자열을 찾는 여러 가지 방법을 볼 수 있습니다.