[맥 터미널 / Unix] tr command로 파일 안의 내용 바꾸기

Unix의 tr command는 translate characters, 즉 파일안의 문자들을 치환해주는 기능을 수행합니다. 일정한 규칙이나 패턴이 존재한다면, tr command를 유용하게 사용할 수 있을 듯합니다. 아래 사용 예시를 참조 바랍니다.


tr command 사용 예시

모든 번호와 – 기호 삭제(-d 옵션)

$echo "Phone number : 010-1111-2222"| tr -d '[:digit:]\-'
Phone number :

c를 제외한 모두를 z로 치환(-c 옵션)

echo abcdefghijklmnopqrstuvwxyz | tr -c 'c' 'z' 
zzczzzzzzzzzzzzzzzzzzzzzzzz

abc를 제외한 모두를 z로 치환(-c 옵션)

$echo abcdefghijklmnopqrstuvwxyz | tr -c 'abc' 'z'
abczzzzzzzzzzzzzzzzzzzzzzzz

File Input(<)을 이용한 모든 소문자 대문자로 치환

$cat example4.txt
Phone number : 010-1111-2222
$tr "a-z" "A-Z" < example4.txt
PHONE NUMBER : 010-1111-2222
$tr "[:lower:]" "[:upper:]" < example4.txt
PHONE NUMBER : 010-1111-2222

숫자와 -기호를 제외하고 모두 삭제 (-c, -d 옵션)

$echo "Phone number : 010-1111-2222"| tr -cd '[:digit:]\-'
010-1111-2222

동일한 기호 발생시 하나로 통합하기 (-s 옵션) – 공백 하나로 줄이기

$echo 'squeezing          repeating        characters' | tr -s '[:space:]'
squeezing repeating characters

‘abcdefgh’ 조건에 만족하는 모든 문제 ‘123’으로 치환.

단, ‘123’의 길이(3)에 벗어나는 문자가 나올 시, ‘123’의 마지막 문자 ‘3’이 반복

$echo 'This is an Example' | tr 'abcdefgh' '123'
T3is is 1n Ex1mpl3

결과물의 첫 2라인 보기 (head -2)

$echo 'This is an Example' | tr -cs "[:alpha:]" "\n" | head -2
This
is

결과물의 마지막 2라인 보기 (tail -2)

$echo 'This is an Example' | tr -cs "[:alpha:]" "\n" | tail -2
an
Example

참고

댓글 남기기