[Command-line] tr 명령어를 이용한 character set 변환 및 삭제
2021. 1. 5. 22:28ㆍLinux/Command-line
반응형
tr
translate characters
문자세트를 변환하는 command line 명령어입니다.
tr [-c] set1 set2 tr [-c] -d set1 tr [-c] -s set1 tr [-c] -s set1 set2
1.1. 옵션
- -d
- --delete
- set1에 해당되는 문자세트를 지운다.
- -c
- --complement
- set1을 제외한 모든 문자세트를 set2로 변환한다.
- set1의 여집합()
- -s
- --squeeze-repeats
- 변환한 문자세트의 반복되는 문자를 1문자로 압축합니다.
- 변환할 문자세트가 단일문자 세트일 경우에만 적용할 수 있습니다.
1.2. 문자 set
set1, set2에 설정할 수 있는 문자 set
- c1-c2
- c1 문자부터 c2 문자까지
- ex) a-z
- [:class:]
- 문자 클래스
- [:alnum:] 알파벳 + 숫자
- [:alpha:] 알파벳
- [:digit:] 숫자(10진수)
- [:xdigit:] 숫자(16진수)
- [:lower:] 알파벳(소문자)
- [:upper:] 알파벳(대문자)
- [:blank:] whitespace 문자(공백)
- [:space:] 공백 + newline
- [:special:] 특수문자
- \character
- 특수문자
- \a : alert character
- \b : backspace
- \f : form-feed
- \n : newline
- \r : carriage return
- \t : tab
- \v : virtical tab
2. 실습
아래 문서를 이용하여 실습을 해봅시다.
cat apple.txt
grape 12345 nnnnn
abcde pine2 mmmmm
apple viooo fifif
melon rrrrr dmmmn
cocoa ooooo sksks
2.1. 문자 세트 변환
tr set1 set2
set1 문자세트를 set2로 변환합니다.
문자로 변환
cat apple.txt | tr [:blank:] '|' grape|12345|nnnnn abcde|pine2|mmmmm apple|viooo|fifif melon|rrrrr|dmmmn cocoa|ooooo|sksks
소문자를 대문자로 변환
cat apple.txt | tr [:lower:] [:upper:] GRAPE 12345 NNNNN ABCDE PINE2 MMMMM APPLE VIOOO FIFIF MELON RRRRR DMMMN COCOA OOOOO SKSKS
2.2. 문자세트 제거
tr -d set1
set1 문자세트를 제거합니다.
문자제거
a문자를 제거합니다.
cat apple.txt | tr -d a grpe 12345 nnnnn bcde pine2 mmmmm pple viooo fifif melon rrrrr dmmmn coco ooooo sksks
digit 제거
cat apple.txt | tr -d [:digit:] grape nnnnn abcde pine mmmmm apple viooo fifif melon rrrrr dmmmn cocoa ooooo sksks
alpha 제거
cat apple.txt | tr -d [:alpha:] 12345 2
알파벳만 제거했기 때문에 digit문자와 space문자는 남아있습니다.
space 제거
space에는 공백 + newline
이기 때문에 개행과 띄어쓰기가 모두 제거되었습니다.
cat apple.txt | tr -d [:space:] grape12345nnnnnabcdepine2mmmmmappleviooofififmelonrrrrrdmmmncocoaooooosksks
2.5. 문자세트를 제외한 모든 문자세트 변환
tr [-c] set1 set2
-c 옵션을 사용하면 set1 문자세트를 제외한 모든 문자세트를 set2로 변환하는 의미가 됩니다.
tr [-c] -d set1 tr [-c] -s set1 tr [-c] -s set1 set2
이외의 다른 명령어들도 마찬가지 입니다.
a-e문자세트를 제외한 모든 문자세트를 z로 변환
cat apple.txt | tr -c a-e 'z' zzazezzzzzzzzzzzzzabcdezzzzezzzzzzzzazzzezzzzzzzzzzzzzzezzzzzzzzzzdzzzzzczczazzzzzzzzzzzzz
2.4. 변환문자 반복 압축
변환할 문자세트가 단일문자일때에만 사용할 수 있는 옵션입니다.
tr [-c] -s set1
set1만 사용할 경우 특정 문자가 중복적으로 변환된 것을 한글자로 압축합니다.
cat apple.txt | tr -s 'm' grape 12345 nnnnn abcde pine2 m apple viooo fifif melon rrrrr dmn cocoa ooooo sksks
apple.txt 파일의 중복되는 m글자를 한글자로 압축했습니다.
또, -c
옵션과 함께 사용하여 특정문자를 제외한 문자를 set2('z')로 치환한 후 치환된 문자열을 압축할 수도 있습니다.
cat apple.txt | tr -sc a-e 'z' zazezabcdezezazezezdzczczaz
cat apple.txt | tr -sc a-e ' ' a e abcde e a e e d c c a
tr [-c] -ds set1 set2
++
- character set translate using tr command
- tr command in Unix/Linux
728x90
반응형
'Linux > Command-line' 카테고리의 다른 글
ssh 터널링을 이용한 원격 private database 접속 (0) | 2021.03.03 |
---|---|
[Command-line] sort 명령어를 이용한 텍스트 정렬 (0) | 2021.01.12 |
[Command-line] tail을 이용한 실시간 로그 모니터링 (+ head) (0) | 2020.12.29 |
[CLI vim] 2. cursor 이동 (0) | 2020.12.01 |
[CLI vim] 1. vim 시작하기 (0) | 2020.11.20 |