tr
명령어는 리눅스와 유닉스 시스템에서 문자 변환 또는 삭제를 수행하는 유용한 명령어이다. 이 글에서는 tr
의 기본 사용법과 다양한 예제를 통해 실제 활용되는 방법에 대해 알아본다.
tr
기본 문법
tr
명령어의 기본적인 구문은 다음과 같다:
tr [options] set1 set2
options
:tr
명령어의 옵션을 지정한다.-d
:set1
에서 지정한 문자를 삭제한다.-s
:set2
에서 반복되는 문자를 삭제한다.-t
:set1
을set2
의 길이로 자른다.
set1
: 변환 전 문자 집합을 지정한다.set2
: 변환 후 문자 집합을 지정한다.
Examples
1. 대소문자 변환
~$ echo "Hello World" | tr 'a-z' 'A-Z'
HELLO WORLD
위 명령은 “Hello World” 문자열의 소문자를 대문자로 변환하여 출력한다.
2. 문자 삭제
~$ echo "Remove vowels" | tr -d 'aeiou'
Rmv vwls
“Remove vowels” 문자열에서 모음을 삭제하여 “Rmv vwls”를 출력한다.
3. 문자 변환 및 삭제
~$ echo "Hello 123" | tr 'a-zA-Z0-9' '!'
!!!!! !!!
“Hello 123” 문자열의 알파벳과 숫자를 모두 느낌표(!
)로 변환하여 출력한다.
4. 문자 집합 확장
~$ echo "123-456-789" | tr '0-9' 'a-j'
bcd-efg-hij
“123-456-789” 문자열의 숫자를 a부터 j까지 순차적으로 변환하여 출력한다.
5. 특수문자 삭제
~$ echo "Hello! @World@" | tr -d '[:punct:]'
Hello World
“Hello! @World@” 문자열에서 모든 특수문자를 삭제한 “Hello World”를 출력한다.
다양한 활용 예제
1. 숫자만 추출
:~$ echo "a1b2c3" | tr -cd '0-9'
123
“a1b2c3” 문자열에서 숫자만 추출하여 “123”을 출력한다.
2. 공백 제거
~$ echo "Remove extra spaces" | tr -s ' '
Remove extra spaces
“Remove extra spaces” 문자열에서 연속된 공백을 하나만 남기고 출력한다.
3. 모든 문자 소문자로 변환
~$ echo "Convert TO Lowercase" | tr 'A-Z' 'a-z'
convert to lowercase
“Convert TO Lowercase” 문자열의 모든 알파벳을 소문자로 변환하여 출력한다.
4. 중복 문자 제거
~$ echo "aaabbbccc" | tr -s 'a-c'
abc
“aaabbbccc” 문자열에서 중복되는 문자를 하나만 남기고 출력한다.
5. 문자열 치환
~$ echo "Replace Spaces" | tr ' ' '_'
Replace_Spaces
“Replace Spaces” 문자열의 공백을 언더스코어(_)로 치환하여 출력한다.
참고 사이트
- tr(1) – Linux man page:
tr
명령어에 대한 공식 문서. - https://linuxcommand.org/lc3_man_pages/tr1.html