tr
는 명령 라인 유틸리티에서 리눅스와 유닉스 시스템을 변환하는 삭제하고 좋다고 문자 표준에서 입력 작성하고 그 결과를 표준출력.
tr
명령을 수행할 수 있습과 같은 작업 제거를 반복되는 문자,변환를 대문자 소문자,그리고 기본 문자를 대체하고 제거 합니다. 일반적으로 배관을 통해 다른 명령과 함께 사용됩니다.,
이 튜토리얼에서,우리는 당신이 사용하는 방법을tr
명령을 통해 실질적인 예들에 대한 상세한 설명을 가장 일반적인 옵션이 있습니다.
사용하는 방법 tr 명령#
에 대한 구문을tr
명령은 다음과 같습니다:
tr OPTION... SET1
tr
지 두 세트의 문자,일반적으로,동일한 길이 대체자의 첫 번째 집합으로 해당 문자에서 두 번째로 설정합니다.,
ASET
는 기본적으로 특수 백 슬래시 이스케이프 문자를 포함한 문자 문자열입니다.
다음 예에서tr
체에서 모든 문자는 표준입력(linuxize),매핑하여 문자에서 첫 번째로 설정과 일치하는 것에서 두 번째로 설정합니다.,
echo 'linuxize' | tr 'lin' 'red'
발생하는 각l
는 대체과 함께r
,i
e
, 그리고n
d
reduxeze
문자 집합을 정의할 수도 있습니다 사용하여 문자 범위를 다룹니다., 예를 들어 쓰는 대신:
echo 'linuxize' | tr 'lmno' 'wxyz'
사용할 수 있습니다:
echo 'linuxize' | tr 'l-n' 'w-z'
경-c
(--complement
)옵션을 선택 사용 tr
대체되지 않는 문자를 모두에 SET1.
에서는 아래의 예를 제외한 모든 문자를”리”대체될 것입니다 마지막에서 두 번째로 설정:
echo 'linuxize' | tr -c 'li' 'xy'
liyyyiyyy
당신은 발견 할 수 있습니다으로,위의 출력은 하나의 더 볼 수 있는 문자 입력보다., 이 때문에echo
명령어는 눈에 보이지 않는 줄 바꿈 문자\n
그것은 또한 대체과 함께y
. 새 줄없이 문자열을 에코하려면-n
옵션을 사용하십시오.
-d
(--delete
)옵션을tr
문자를 삭제하에 지정된 SET1. 쥐어 짜지 않고 문자를 삭제할 때는 한 세트 만 지정하십시오.,
아래 명령을 제거됩니다l
,i
및z
문자:
echo 'Linuxize' | tr -d 'liz'
L
문자를 삭제하지 않기 때문에 입력 포함되어 있는 대문자L
는l
세트의 문자는 소문자입니다.
Lnuxe
-s
(--squeeze-repeats
)옵션을 대체 시퀀스의 반복적 발생 가진 캐릭터에서 설정된 마지막을 설정합니다.,
다음 예에서tr
제거한 반복 공백 문자
echo "GNU \ Linux" | tr -s ' '
GNU \ Linux
경우 SET2 사용의 순서에 지정된 문자 SET1 대 SET2.
echo "GNU \ Linux" | tr -s ' ' '_'
GNU_\_Linux
-t
(--truncate-set1
)옵션을tr
자르 SET1 의 길이 SET2 을 하기 전에 추가적인 처리를 수행합니다.,
기본적으로 SET1 이 SET2 보다 큰 경우tr
는 set2 의 마지막 문자를 재사용합니다. 다음은 예이다:
echo 'Linux ize' | tr 'abcde' '12'
출력을 보여주는 캐릭터e
에서 SET1 와 일치하는 최신의 캐릭터 SET2 는2
Linux iz2
지금 동일한 명령을 사용하는-t
옵션:
echo 'Linux ize' | tr -t 'abcde' '12'
Linux ize
당신이 볼 수있는 세 가지 캐릭터의 SET1 이 제거됩니다., SET1 은 SET2 와 같은 길이 인’ab’가되고 교체가 이루어지지 않습니다.
옵션 결합#
tr
명령을 사용하면 해당 옵션을 결합 할 수도 있습니다. 예를 들어,다음과 같은 명령을 처음 대체 제외한 모든 문자를i
0
그리고 좋다고 반복되는0
문자:
echo 'Linux ize' | tr -cs 'i' '0'
0i0i0
Tr 예제 명령#
이 섹션에서 다룰 내용은 다음과 같습니다 몇 가지 예의 공통적으로 사용하는tr
명령입니다.,
변환 낮은 경우를 상한 경우#
변환 낮은 케이스 상단 케이스 또는 역 중 하나를 사용하는 일반적인 경우의tr
명령입니다. 는 모든 소문자와 일치하고
는 모든 대문자와 일치합니다.
echo 'Linuxize' | tr '' ''
LINUXIZE
대신의 캐릭터 클래스를 사용할 수도 있습 범위:
echo 'Linuxize' | tr 'a-z' 'A-Z'
변환하는 경우 상하이 낮은 경우,단순히 전환하는 장소의 설정합니다.,
제거하는 모든 숫자가 아닌 문자#
다음 명령을 모두 제거합니다 숫자가 아닌 문자
echo "my phone is 123-456-7890" | tr -cd
의미에 대한 모든 숫자,문자를 사용하여
-c
옵션은 명령이 모두 제거합니다 숫자가 아닌 문자입니다.,다음과 같이 보입니다.
1234567890
각각 넣어 단어에서 새로운 라인을#
각각을 넣어 단어에서 새로운 라인,우리가 필요를 매치가 아닌 모든 영숫자 문자를 대체하는 새로운 라인:
echo 'GNU is an operating system' | tr -cs '' '\n'
GNUisanoperatingsystem
제거 빈 줄#
을 삭제하고 빈 줄을 단순히 짜 줄 바꿈 문자를 반복적인:
tr -s '\n' < file.txt > new_file.txt
위의 명령에서 우리가 사용하여 리다이렉션 상징<
을 통과하는 컨텐츠의file.txt
을tr
명령입니다., 리디렉션>
는 명령의 출력을new_file.txt
에 씁니다.
인쇄$디렉토리 경로 별도의 줄에#
$PATH
환경 변수를 콜론으로 구분한 목록의 디렉토리에 있는지를 알려주는 역할을하는 디렉토리를 검색에 대한 실행 가능한 파일을 때 당신이 입력한 명령입니다.,
인쇄하는 각 디렉토리에서 별개의 라인 우리는 필요에 맞게 콜론(:
)그리고 그것을 대체하는 새로운 라인:
echo $PATH | tr ':' '\n'
/usr/local/sbin/usr/local/bin/usr/sbin/usr/bin/sbin/bin
결론#
tr
은 명령어로 번역하거나 삭제하는 문자입니다.
매우 유용하지만tr
는 단일 문자로만 작동 할 수 있습니다. 더 복잡한 패턴 매칭과 문자열 조작을 사용해야 합sed
또는awk
.피>