Bash에서 부분 문자열 추출
이 튜토리얼은 cut
명령, 하위 문자열 확장 및 내부 필드 구분 기호(IFS
)를 사용하여 bash에서 하위 문자열을 추출하는 다양한 방법을 보여줍니다.
cut
명령을 사용하여 Bash에서 부분 문자열 추출
아래 스크립트는 cut
명령을 사용하여 부분 문자열을 추출합니다. -d
옵션은 문자열을 필드로 나누는 데 사용할 구분 기호를 지정하고 -f
옵션은 추출할 필드의 번호를 설정합니다.
우리의 경우 _
를 구분 기호로 사용하여 문자열을 나누고 세 번째 필드에 액세스하기 위해 3
인수를 -f
옵션에 전달합니다.
#!/bin/bash
printf "Script to extract a substring!\n\n"
numbers='one_two_three_four_five'
printf "full string: $numbers\n"
substring=$(echo $numbers | cut -d '_' -f 3)
printf "substring: $substring\n"
다음과 같이 bash 스크립트를 실행합니다.
bash substring.sh
출력에서 one_two_three_four_five
문자열에서 하위 문자열 three
가 추출되었습니다.
Script to extract a substring!
full string: one_two_three_four_five
substring: three
하위 문자열 확장을 사용하여 Bash에서 하위 문자열 추출
부분 문자열 확장은 기본 제공 bash 기능입니다. 다음 구문을 사용합니다.
$(variable:offset:length)
variable
는 문자열을 포함하는 변수 이름입니다. offset
은 문자열 추출을 시작할 위치를 지정하는 데 사용됩니다. length
는 offset
을 제외하고 추출할 문자의 범위를 지정하는 데 사용됩니다.
아래 스크립트는 변수 이름을 numbers
로 설정하고 offset
은 4
로, 추출할 문자열의 length
는 3
으로 설정합니다.
#!/bin/bash
printf "Script to extract a substring!\n\n"
numbers='one_two_three_four_five'
substring=${numbers:4:3}
printf "full string: $numbers\n"
printf "substring: $substring\n"
다음과 같이 bash 스크립트를 실행합니다.
bash substring.sh
출력에서 one_two_three_four_five
문자열에서 하위 문자열 two
가 추출되었습니다.
Script to extract a substring!
full string: one_two_three_four_five
substring: two
IFS
를 사용하여 Bash에서 하위 문자열 추출
IFS
는 내부 필드 구분 기호를 나타냅니다. IFS
는 확장 후 단어 분할 및 내장된 읽기 명령으로 줄을 단어로 분할하는 데 사용됩니다.
아래 스크립트에서 IFS는 _
로 설정되었습니다. 이는 _
를 구분 기호로 사용하여 numbers
변수의 문자열을 분할해야 함을 의미합니다. 문자열이 분할되면 $[integer]
구문을 사용하여 단어에 액세스할 수 있습니다. 첫 번째 단어는 $1
, 두 번째 단어는 $2
, 세 번째 단어는 $3
등으로 액세스할 수 있습니다.
#!/bin/bash
printf "Script to extract a substring!\n\n"
numbers='one_two_three_four_five'
IFS="_"
set $numbers
printf "full string: $numbers\n"
printf "substring: $2\n"
다음과 같이 bash 스크립트를 실행합니다.
bash substring.sh
출력에서 one_two_three_four_five
문자열에서 하위 문자열 two
가 추출되었습니다.
Script to extract a substring!
full string: one_two_three_four_five
substring: two