tr는 명령 라인 유틸리티에서 리눅스와 유닉스 시스템을 변환하는 삭제하고 좋다고 문자 표준에서 입력 작성하고 그 결과를 표준출력.

tr명령을 수행할 수 있습과 같은 작업 제거를 반복되는 문자,변환를 대문자 소문자,그리고 기본 문자를 대체하고 제거 합니다. 일반적으로 배관을 통해 다른 명령과 함께 사용됩니다.,

이 튜토리얼에서,우리는 당신이 사용하는 방법을tr명령을 통해 실질적인 예들에 대한 상세한 설명을 가장 일반적인 옵션이 있습니다.

사용하는 방법 tr 명령#

에 대한 구문을tr명령은 다음과 같습니다:

tr OPTION... SET1 

tr지 두 세트의 문자,일반적으로,동일한 길이 대체자의 첫 번째 집합으로 해당 문자에서 두 번째로 설정합니다.,

ASET는 기본적으로 특수 백 슬래시 이스케이프 문자를 포함한 문자 문자열입니다.

다음 예에서tr체에서 모든 문자는 표준입력(linuxize),매핑하여 문자에서 첫 번째로 설정과 일치하는 것에서 두 번째로 설정합니다.,

echo 'linuxize' | tr 'lin' 'red'

발생하는 각l는 대체과 함께r,ie, 그리고nd

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,iz문자:

echo 'Linuxize' | tr -d 'liz'

L문자를 삭제하지 않기 때문에 입력 포함되어 있는 대문자Ll세트의 문자는 소문자입니다.

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명령을 사용하면 해당 옵션을 결합 할 수도 있습니다. 예를 들어,다음과 같은 명령을 처음 대체 제외한 모든 문자를i0그리고 좋다고 반복되는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.txttr명령입니다., 리디렉션>는 명령의 출력을new_file.txt에 씁니다.

인쇄$디렉토리 경로 별도의 줄에#

$PATH환경 변수를 콜론으로 구분한 목록의 디렉토리에 있는지를 알려주는 역할을하는 디렉토리를 검색에 대한 실행 가능한 파일을 때 당신이 입력한 명령입니다.,

인쇄하는 각 디렉토리에서 별개의 라인 우리는 필요에 맞게 콜론(:)그리고 그것을 대체하는 새로운 라인:

echo $PATH | tr ':' '\n'
/usr/local/sbin/usr/local/bin/usr/sbin/usr/bin/sbin/bin

결론#

tr은 명령어로 번역하거나 삭제하는 문자입니다.

매우 유용하지만tr는 단일 문자로만 작동 할 수 있습니다. 더 복잡한 패턴 매칭과 문자열 조작을 사용해야 합sed또는awk.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다