tr은 유닉스, Plan 9, Inferno, 및 Unix-계열 운영 시스템에서 명령입니다. 그것은 translate 또는 transliterate의 약어로, 입력 데이터 집합에서 특정 문자를 교체하거나 제거하는 연산을 나타냅니다.
Overview
유틸리티는 표준 입력에서 바이트 스트림을 읽고 결과를 표준 출력에 씁니다. 인수로, 그것은 두 개의 문자 집합 (일반적으로 같은 길이)을 취하고, 첫 번째 집합에서 문자의 발생을 두 번째 집합에서 해당하는 원소로 바꿉니다. 예를 들어,
tr 'abcd' 'jkmn'
모든 문자를 a에서 j로, b에서 k로, c에서 m으로, 및 d에서 n으로 매핑합니다.
문자 집합은 문자 범위를 사용함으로써 축약될 수 있습니다. 이전 예제는 다음과 같이 쓰일 수 있습니다:
tr 'a-d' 'jkmn'
POSIX-호환 버전의 tr에서, 문자 범위로 표시되는 집합은 로케일의 대조 순서에 따라 다르므로, 그것들이 작성된 문자 범위와 다른 로케일에서 실행될 수 있는 스크립트에서 문자 범위를 피하는 것이 더 안전합니다. 범위는 종종 [:alpha:]와 같은 POSIX 문자 집합으로 대체될 수 있습니다.
s 플래그는 tr에게 그것의 출력에서 동일한 인접 문자 시퀀스를 단일 토큰으로 압축하기 위한 원인이 됩니다. 예를 들어,
tr -s '\n'
하나 이상의 줄 바꿈 문자 시퀀스를 단일 줄 바꿈으로 바꿉니다.
d 플래그는 tr에게 입력에서 지정된 문자 집합의 모든 토큰을 삭제하기 위한 원인이 됩니다. 이 경우에서, 오직 단일 문자 집합 인수가 사용됩니다. 다음 명령은 캐리지 리턴 문자를 제거합니다.
tr -d '\r'
c 플래그는 첫 번째 문자 집합의 보수를 나타냅니다. 다음 호출은
tr -cd '[:alnum:]'
따라서 영어-숫자가 아닌 모든 문자를 제거합니다.
Implementations
tr의 원래 버전은 Douglas McIlroy에 의해 작성했었고 버전 4 유닉스에 도입되었습니다.
GNU coreutils에 번들된 tr 버전은 Jim Meyering에 의해 작성되었습니다.
그 명령은 역시 OS-9 쉘에서 사용할 수 있습니다.
tr 명령은 역시 MSX-DOS 버전 2에 대해 ASCII의 MSX-DOS2 도구의 일부입니다.
GNU tr과 고전 유닉스 tr을 포함하는 대부분의 tr 버전은 단일-바이트 문자에서 작동하고 유니코드와 호환되지 않습니다. 예외는 기본 유니코드 지원을 제공하는 Heirloom Toolchest 구현입니다.
tr 명령은 역시 IBM i 운영 시스템에 이식되었습니다.
Ruby와 Perl은 역시 유사하게 작동하는 내부 tr 연산자를 가집니다. Tcl의 string map 명령은 그것이 문자열을 문자열에 매핑하지만 tr은 문자를 문자에 매핑한다는 점에서 더 일반적입니다.
See also
External links
- tr – Commands & Utilities Reference, The Single UNIX Specification, Issue 7 from The Open Group
- tr(1) – Unix 8th Edition manual page.
- tr(1) – FreeBSD General Commands Manual
- tr(1) – Solaris 10 User Commands Reference Manual
- tr(1) – Linux User's Manual – User Commands}
- tr(1) – Plan 9 Programmer's Manual, Volume 1
- tr(1) – Inferno General commands Manual
- usage examples at examplenow.com