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 버전 간에 약간 다르기 때문에 예기치 않은 동작이 발생할 수 있습니다.