Bash에서 문자열 조작 분석하기
쉘 스크립트로 작업할 때 일반적인 작업은 구분 기호를 기준으로 문자열을 분할하는 것입니다. 예를 들어, 세미콜론으로 구분된 이메일 주소가 포함된 문자열을 생각해 보세요. 각 이메일을 개별적으로 처리해야 하는 경우 이 문자열을 분할하는 방법을 이해하는 것이 필수적입니다. 이 글은 Bash에서 이를 달성하기 위한 다양한 방법을 안내할 것입니다.
`tr` 명령을 사용하고 내부 필드 구분 기호(IFS)를 조작하는 등의 솔루션을 살펴보겠습니다. 결국 문자열 분할을 효율적으로 처리하고 IFS를 기본값으로 재설정할 수 있게 됩니다. Bash 스크립팅 작업을 자세히 알아보고 단순화해 보세요!
명령 | 설명 |
---|---|
tr | 문자를 번역하거나 삭제합니다. 여기서는 문자열을 분할하기 위해 세미콜론을 개행 문자로 바꾸는 데 사용됩니다. |
IFS | Bash 스크립트의 특정 구분 기호를 기반으로 문자열을 분할하는 데 사용되는 내부 필드 구분 기호입니다. |
read -r -a | 입력 라인을 읽고 이를 배열로 분할합니다. -r 옵션은 백슬래시가 이스케이프 문자로 해석되는 것을 방지합니다. |
echo | 텍스트를 표준 출력으로 인쇄합니다. 분할된 문자열 요소를 표시하는 데 사용됩니다. |
split | 지정된 구분 기호를 기반으로 문자열을 문자열 목록으로 나누는 Perl 함수입니다. |
foreach | 값 목록을 반복하는 Perl 루프 구조입니다. |
Bash 문자열 분할 기술 이해
첫 번째 Bash 스크립트는 다음을 사용하여 문자열을 분할하는 방법을 보여줍니다. 명령. 여기서는 문자열을 정의합니다. 그리고 사용 와 함께 tr 세미콜론 구분 기호를 개행 문자로 변환합니다. 이렇게 하면 문자열이 개별 줄로 효과적으로 분리됩니다. 그만큼 그런 다음 루프는 각 줄을 반복하여 대괄호 안에 주소를 인쇄합니다. 이 방법은 간단하며 Unix 명령의 강력한 텍스트 처리 기능을 활용하여 문자열을 조작합니다.
또 다른 방법은 . 임시로 설정하여 세미콜론으로 문자열을 배열로 나눌 수 있습니다. 원본을 저장합니다 에게 OIFS 수정하기 전에 나중에 복원할 수 있는지 확인하세요. 그만큼 명령은 입력 문자열을 다음과 같은 배열로 읽습니다. , 수정된 내용을 기준으로 분할 . 처리 후 원본 IFS 복원됩니다. 이 접근 방식은 Bash에서 문자열 분할을 처리하는 보다 프로그래밍적인 방법을 제공하므로 추가 조작을 위해 배열을 활용할 수 있습니다.
Bash를 사용하여 구분 기호에서 문자열 분할
배시 스크립트
#!/usr/bin/env bash
# Input string
IN="bla@some.com;john@home.com"
# Split string using 'tr' and iterate
mails=$(echo $IN | tr ";" "\n")
for addr in $mails; do
echo "> [$addr]"
done
# Output:
# > [bla@some.com]
# > [john@home.com]
IFS를 사용하여 Bash에서 문자열 분할
배시 스크립트
#!/usr/bin/env bash
# Input string
IN="bla@some.com;john@home.com"
# Save the original IFS
OIFS=$IFS
# Set IFS to semicolon
IFS=';'
# Split string into an array
read -r -a mails2 <<< "$IN"
# Restore the original IFS
IFS=$OIFS
# Iterate over the array
for x in "${mails2[@]}"; do
echo "> [$x]"
done
# Output:
# > [bla@some.com]
# > [john@home.com]
문자열 분할에 Python 사용
파이썬 스크립트
#!/usr/bin/env python3
# Input string
IN = "bla@some.com;john@home.com"
# Split string by semicolon
mails = IN.split(';')
# Iterate and print each element
for addr in mails:
print(f"> [{addr}]")
# Output:
# > [bla@some.com]
# > [john@home.com]
Perl을 사용하여 문자열 분할
펄 스크립트
삼
Bash의 고급 문자열 분할 기술
Bash에서 문자열을 분할하는 또 다른 강력한 방법은 명령. 패턴 스캔 및 처리를 위해 설계된 다목적 명령줄 유틸리티입니다. 사용자 정의 필드 구분 기호를 정의할 수 있으므로 문자열을 분할하는 데 특히 유용할 수 있습니다. 예를 들어, 다음을 사용할 수 있습니다. 세미콜론 구분 기호를 기준으로 문자열을 분할하고 개별 구성 요소를 인쇄합니다. 이 방법은 매우 유연하고 더 복잡한 문자열 조작 작업을 처리할 수 있으므로 Bash 프로그래머 툴킷에서 귀중한 도구가 됩니다.
추가적으로, 구분 기호를 기준으로 문자열을 분할하는 데 명령을 사용할 수 있습니다. 그만큼 명령은 일반적으로 입력 데이터의 각 줄에서 섹션을 추출하는 데 사용됩니다. 구분 기호를 지정하여 옵션을 사용하여 필드를 선택합니다. -f 옵션을 사용하면 문자열의 일부를 효율적으로 분할하고 추출할 수 있습니다. 예를 들어 입력 문자열에서 첫 번째 이메일 주소를 추출합니다. 이러한 고급 방법은 Bash의 문자열 조작 작업에 대한 더 많은 제어와 정확성을 제공합니다.
- Bash에서 구분 기호로 문자열을 어떻게 분할합니까?
- 당신은 사용할 수 있습니다 변수 또는 다음과 같은 명령 , , 그리고 cut 문자열을 구분 기호로 분할합니다.
- 이것은 Bash의 변수?
- 그만큼 (내부 필드 구분 기호)는 입력 텍스트를 단어나 토큰으로 분할하는 데 사용되는 문자를 정의하는 특수 변수입니다.
- 어떻게 재설정할 수 있나요? 변수를 기본값으로 설정하시겠습니까?
- 원본을 저장하세요 변경하기 전에 값을 지정하고 처리 후 복원합니다. .
- 무엇을 하는가? 명령은 문자열 분할에서 수행됩니까?
- 그만큼 명령은 문자를 번역하거나 삭제합니다. 문자열을 분할하기 위해 구분 기호를 개행 문자로 바꿀 수 있습니다. .
- Bash를 사용하여 문자열을 배열로 분할할 수 있나요?
- 예, 변경하면 변수 및 사용 , 문자열을 배열로 분할할 수 있습니다.
- 이것은 사용되는 명령은 무엇입니까?
- 패턴 스캔 및 처리를 위한 명령줄 유틸리티입니다. 사용자 정의 필드 구분 기호를 정의하여 문자열을 분할할 수 있습니다.
- 어떻게 명령 작업?
- 그만큼 명령은 각 입력 줄에서 섹션을 추출합니다. 구분 기호를 지정하고 필드를 선택하여 문자열을 분할할 수 있습니다. .
- 사용하는 이유 문자열 분할에 도움이 되나요?
- 사용 문자열 분할을 위한 사용자 지정 구분 기호를 정의하여 다양한 입력 형식에 맞게 사용할 수 있습니다.
- Bash에서 여러 구분 기호로 문자열을 분할할 수 있나요?
- 예, 다음을 조합하여 사용할 수 있습니다. 그리고 여러 구분 기호를 처리합니다.
- 사용해도 되나요 Bash에서 문자열 분할을 원하시나요?
- 하는 동안 주로 스트림 편집기이므로 다음과 같은 다른 명령과 결합할 수 있습니다. 문자열을 간접적으로 분할합니다.
Bash에서 문자열 조작을 마스터하면 스크립팅 효율성이 크게 향상될 수 있습니다. 사용 여부 간단한 구분 기호 또는 다음과 같은 고급 도구의 경우 그리고 , 이러한 기술은 효과적인 Bash 프로그래밍에 필수적입니다. 항상 원본을 복원하는 것을 잊지 마세요 IFS 스크립트에서 예상치 못한 동작을 방지하려면 이러한 방법을 사용하면 Bash 스크립트에서 광범위한 문자열 처리 작업을 처리할 수 있습니다.