SW/리눅스

Linux : Bash : 문자열 포함 체크 방법, 예제, 명령어

얇은생각 2021. 11. 3. 07:30
반응형

Bash에서 문자열로 작업할 때 가장 일반적인 작업 중 하나는 문자열에 다른 문자열이 포함되어 있는지 여부를 확인하는 것입니다.

이 글에서는 문자열에 하위 문자열이 포함되어 있는지 확인하는 몇 가지 방법을 보여 드리겠습니다.

 

 

Linux : Bash : 문자열 포함 체크 방법, 예제, 명령어

 

 

와일드카드를 사용

가장 쉬운 방법은 하위 문자열을 별표 와일드카드 기호(별표) *로 둘러서 문자열과 비교하는 것입니다. 와일드카드는 0 또는 하나 이상의 문자를 나타내는 데 사용되는 기호입니다.

테스트가 true를 반환하면 하위 문자열이 문자열에 포함됩니다. 

아래 예에서는 if 문과 동등 연산자(==)를 사용하여 문자열 STR에서 하위 문자열 SUB가 있는지 확인합니다.

#!/bin/bash

STR='GNU/Linux is an operating system'
SUB='Linux'
if [[ "$STR" == *"$SUB"* ]]; then
  echo "It's there."
fi

# It's there.

 

 

 

정규식 연산자를 사용

문자열 내에서 지정된 하위 문자열이 발생하는지 여부를 확인하는 또 다른 옵션은 regex 연산자 =~를 사용하는 것입니다. 이 연산자를 사용하면 오른쪽 문자열이 정규식으로 간주됩니다.

별표 뒤에 오는 마침표는 새 행 문자를 제외한 모든 문자와 0개 이상 일치합니다.

#!/bin/bash

STR='GNU/Linux is an operating system'
SUB='Linux'

case $STR in

  *"$SUB"*)
    echo -n "It's there."
    ;;
esac

# It's there.

 

 

 

Grep를 사용

grep 명령을 사용하여 다른 문자열에서 문자열을 찾을 수도 있습니다.

다음 예에서는 $STR 문자열을 grep에 입력으로 전달하고 입력 문자열 내에 $SUB 문자열이 있는지 확인합니다. 명령은 true 또는 false를 적절하게 반환합니다. 

#!/bin/bash

STR='GNU/Linux is an operating system'
SUB='Linux'

if grep -q "$SUB" <<< "$STR"; then
  echo "It's there"
fi

 

 

-q 옵션은 grep에게 조용하고 출력을 생략하도록 합니다.

문자열에 하위 문자열이 포함되어 있는지 확인하는 것은 Bash 스크립팅에서 가장 기본적이고 자주 사용되는 작업 중 하나입니다.

문자열에 다른 문자열이 포함되어 있는지 테스트하는 방법을 잘 이해해야 합니다. 테스트를 위해 awk 또는 sed와 같은 다른 명령을 사용할 수도 있습니다.

반응형