리눅스 명령어 tr은 문자 치환 및 삭제 작업을 빠르고 간편하게 처리할 수 있는 명령어로, 파일의 내용을 수정하거나 텍스트를 필터링할 때 자주 사용됩니다. 이 글에서는 tr
명령어의 기본 사용법과 옵션, 그리고 실생활에서 활용할 수 있는 유용한 방법들을 소개하겠습니다.
목차
리눅스 명령어 tr이란?
tr
명령어는 translate(변환)의 약자로, 입력받은 텍스트에서 특정 문자들을 변환하거나 삭제하는 데 사용됩니다. 주로 문자열 내에서 문자 간 대체, 공백을 다른 문자로 변환, 소문자를 대문자로 바꾸는 등의 작업에 유용합니다.
이 명령어는 리눅스/유닉스 환경에서 표준적으로 제공되는 유틸리티로, 주로 파이프(|
)와 함께 다른 명령어들과 결합하여 사용됩니다. 이를 통해 복잡한 텍스트 처리 작업을 단순하게 할 수 있습니다.
기본 사용법
tr
명령어는 기본적으로 두 가지 주요 용도로 사용됩니다.
- 문자 변환
- 문자 삭제
명령어의 기본 구문은 다음과 같습니다:
tr [옵션] '원본 문자셋' '대체 문자셋'
ShellScript예시 1: 소문자를 대문자로 변환하기
소문자를 대문자로 바꾸려면 다음과 같은 명령어를 사용합니다:
echo "hello world" | tr 'a-z' 'A-Z'
ShellScript‘hello world’라는 문자열을 소문자에서 대문자로 변환하여 출력한 결과는 아래와 같습니다.
예시 2: 공백을 언더바(_)로 변환하기
공백을 언더바로 변환하고 싶을 때는 다음과 같은 방법을 사용할 수 있습니다:
echo "hello world" | tr ' ' '_'
ShellScript아래와 같이 공백 문자가 언더바로 변경된 것을 볼 수 있습니다.
예시 3: 특정 문자 삭제하기
문자를 삭제하려면 -d
옵션을 사용합니다. 예를 들어, 숫자를 모두 삭제하고 싶다면 다음과 같이 사용할 수 있습니다:
echo "abc123def456" | tr -d '0-9'
ShellScript결과는 다음과 같이 제공된 문자열에서 숫자가 제거된 것을 확인할 수 있습니다.
주요 옵션 설명
tr
명령어는 다양한 옵션을 제공하지만, 자주 사용하는 몇 가지 핵심 옵션만 알아두어도 충분합니다.
-d 옵션
-d
옵션은 delete(삭제)의 약자로, 특정 문자나 문자셋을 삭제할 때 사용됩니다. 위의 예시에서 숫자를 삭제한 것처럼, 불필요한 문자들을 쉽게 제거할 수 있습니다.
tr -d '0-9' < file.txt
ShellScript위 명령어는 file.txt
파일에서 숫자를 모두 삭제한 결과를 출력합니다.
-s 옵션
squeeze(압축)
의 약자입니다. 이 옵션은 연속된 중복 문자를 하나로 압축합니다. 특히 공백이 여러 번 반복되는 경우 이를 하나의 공백으로 줄이는 데 유용합니다.
echo "hello world" | tr -s ' '
ShellScript결과는 다음과 같이 연속된 공백 문자가 하나로 대치된 것을 볼 수 있습니다.
-c 옵션
-c
옵션은 complement(보충)의 약자로, 문자셋을 반대로 지정합니다. 예를 들어, 알파벳이 아닌 모든 문자를 삭제하고 싶다면 -dc 'a-zA-Z'
와 같이 사용할 수 있습니다.
echo "hello123" | tr -cd 'a-zA-Z'
ShellScript아래 그림은 위의 명령어와는 반대로 숫자가 아닌 모든 문자를 삭제하게 한 경우입니다.
주의사항
- 문자셋 크기 불일치:
tr
명령어를 사용할 때 원본 문자셋과 대체 문자셋의 크기가 다르면 오류가 발생할 수 있습니다. 예를 들어, ‘abc’를 ‘AB’로 대체하려고 하면 명령어는 의도한 대로 동작하지 않습니다. 반드시 두 문자셋의 크기가 동일해야 합니다. - 파이프라인 사용:
tr
명령어는 단독으로 사용하기보다는 다른 명령어와 결합하여 파이프라인으로 사용하는 경우가 많습니다. 명령어를 사용할 때는 파일을 직접 수정하지 않고 파이프라인을 통해 결과를 확인한 후, 필요하다면>
연산자를 사용해 파일에 저장하는 것이 안전합니다. - 멀티바이트 문자:
tr
명령어는 기본적으로 ASCII 문자셋을 처리하므로, 한글과 같은 멀티바이트 문자를 다루기에는 적합하지 않을 수 있습니다. 한글이나 다른 멀티바이트 문자를 다룰 때는sed
나awk
와 같은 도구를 사용하는 것이 좋습니다.
정리
리눅스 명령어 tr은 리눅스에서 간단한 문자 변환 작업을 수행할 때 매우 유용한 도구입니다. 특히 대소문자 변환, 특정 문자 삭제, 중복 문자 압축 등 다양한 작업에서 활용될 수 있습니다. 기본적인 사용법과 몇 가지 옵션만 이해하면, 텍스트 데이터를 처리하는 데 있어 큰 도움이 될 것입니다. 다만, 멀티바이트 문자를 다룰 때는 주의가 필요하며, 파이프라인을 통해 안전하게 작업을 처리하는 것이 좋습니다.
이제 tr
명령어를 활용해 텍스트 데이터를 보다 효율적으로 관리해 보세요!