Bash를 사용하여 문자열의 문자 바꾸기

Faiq Bilal 2023년6월20일
  1. 방법 1 - tr 명령 사용
  2. 방법 2 - Bash 매개변수 확장 사용
  3. 방법 3 - sed 명령 사용
Bash를 사용하여 문자열의 문자 바꾸기

문자열 리터럴과 관련된 일반적인 작업 중 하나는 해당 문자열의 개별 문자 또는 하위 문자열을 다른 문자 또는 하위 문자열로 바꾸는 것입니다.

이 기사에서는 BASH 셸을 사용하여 문자열을 대체하는 몇 가지 방법을 살펴봅니다.

방법 1 - tr 명령 사용

tr은 문자열에서 다양한 변환을 수행하는 데 사용할 수 있는 매우 편리한 Bash 명령입니다. 문자열 변환(예: 문자열의 대소문자를 대문자 또는 소문자로 변경), 하위 문자열 반복 제거, 하위 문자열 검색 및 바꾸기에 특히 유용합니다.

문자열의 문자와 하위 문자열을 대체하는 데 사용됩니다.

통사론:

echo "$variableName" | tr [character(s)ToBeRemoved] [character(s)ToBeAdded]

스크립트 예:

STR="ABCD"
echo "$STR" | tr A Z

출력:

ZBCD

문자열 변수 $STR의 문자 "A"는 문자 "Z"로 대체됩니다. 위의 명령은 "A" 문자의 모든 인스턴스를 대체하는 데에도 작동한다는 점에 유의하는 것이 중요합니다.

스크립트 예:

STR="ABACAD"
echo "$STR" | tr A Z

출력:

ZBZCZD

단일 문자를 여러 문자로 바꾸거나 하위 문자열을 다른 하위 문자열로 바꾸는 등의 보다 복잡한 사용 사례의 경우 tr 명령을 계속 사용할 수 있지만 정규식(RegEx)을 통합하고 사용해야 합니다. 작업.

tr의 또 다른 유용한 명령 옵션은 squeeze 또는 -s 옵션으로, 일련의 문자 또는 하위 문자열을 단일 문자로 대체할 수 있습니다.

스크립트 예:

STR="ABBBCDDDDDE"
echo "$STR" | tr -s BD Z

출력:

AZCZE

볼 수 있듯이 문자 “B"와 “D"의 여러 인접 항목이 단일 “Z"로 대체되었습니다.

방법 2 - Bash 매개변수 확장 사용

$ 기호는 일반적으로 변수에 값을 할당하거나 해당 내용을 인쇄하기 위해 변수 이름 앞에 옵니다. 그러나 매개변수 확장에도 사용할 수 있습니다.

매개 변수 확장을 사용하여 다음과 같은 방식으로 변수의 내용을 주어진 하위 문자열로 바꿀 수 있습니다.

통사론:

${varName/substring/replacement}

중괄호 사용은 변수 확장에서 선택 사항입니다.

스크립트 예:

STR="I LIKE FOOTBALL"
echo ${STR/FOOTBALL/CRICKET}

출력:

I LIKE CRICKET

매개 변수 확장 명령에서 변수 이름 뒤에 단일 슬래시를 사용하면 첫 번째 하위 문자열만 대체됩니다. 다음 스크립트를 사용하여 문자열 또는 이중 슬래시에서 하위 문자열의 모든 항목을 바꿉니다.

스크립트 예:

${varName//substring/replacement}

방법 3 - sed 명령 사용

sed 명령은 tr 명령과 유사합니다. 그래도 텍스트 파일을 열지 않고 직접 편집할 수 있기 때문에 더 강력합니다. BASH의 sed 명령은 스트림 편집기를 나타냅니다. 검색, 찾기 및 바꾸기, 삽입 또는 삭제와 같은 파일에 대한 많은 기능을 수행합니다.

sed 명령은 다음과 같은 방법으로 문자열 교체에 사용할 수 있습니다.

스크립트 예:

STR=AZC
echo "$STR" | sed -r 's/[Z]+/B/g'

출력:

ABC

이는 tr 명령을 사용하는 것과 유사합니다. sed 명령 뒤의 -r 옵션은 교체를 나타내며, 패턴 일치(RegEx)는 무엇을 찾아서 교체해야 하는지 설명합니다.

sed 명령의 구문은 다른 시스템의 bash 버전 간에 약간 다르기 때문에 예기치 않은 동작이 발생할 수 있습니다.

관련 문장 - Bash String