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

Muhammad Husnain 2024년2월15일
  1. case 조건문 사용(방법 1)
  2. if 문에서 와일드카드 사용(방법 2)
  3. Bash의 grep 명령 사용(방법 3)
  4. 정규식 연산자(~=) 사용(방법 4)
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개 이상의 하위 문자열을 비교하는 것을 의미합니다.

출력:

정규식 연산자 사용

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

Muhammad Husnain avatar Muhammad Husnain avatar

Husnain is a professional Software Engineer and a researcher who loves to learn, build, write, and teach. Having worked various jobs in the IT industry, he especially enjoys finding ways to express complex ideas in simple ways through his content. In his free time, Husnain unwinds by thinking about tech fiction to solve problems around him.

LinkedIn