기계적 인조 인간

예를 들어 리눅스에서 tr 명령

TOULIVER x BINZ - "BIGCITYBOI" (Official Music Video)

TOULIVER x BINZ - "BIGCITYBOI" (Official Music Video)

차례:

Anonim

tr 은 Linux 및 Unix 시스템의 명령 행 유틸리티로 표준 입력에서 문자를 변환, 삭제 및 압착하여 결과를 표준 출력에 기록합니다.

tr 명령은 반복 문자 제거, 대문자를 소문자로 변환 및 기본 문자 바꾸기 및 제거와 같은 조작을 수행 할 수 있습니다. 일반적으로 배관을 통해 다른 명령과 함께 사용됩니다.

이 튜토리얼에서는 실제 예제와 가장 일반적인 옵션에 대한 자세한 설명을 통해 tr 명령을 사용하는 방법을 보여줍니다.

tr 명령을 사용하는 방법

tr 명령의 구문은 다음과 같습니다.

tr OPTION… SET1

tr 은 일반적으로 길이가 동일한 두 개의 문자 세트를 허용하고 첫 번째 세트의 문자를 두 번째 세트의 해당 문자로 바꿉니다.

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

다음 예제에서 tr 은 첫 번째 세트의 문자를 두 번째 세트의 일치하는 문자로 맵핑하여 표준 입력 (linuxize)의 모든 문자를 대체합니다.

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

l 각 항목은 r , i e , n d 로 바뀝니다.

reduxeze

문자 범위는 문자 범위를 사용하여 정의 할 수도 있습니다. 예를 들어, 쓰는 대신:

echo 'linuxize' | tr 'lmno' 'wxyz'

당신이 사용할 수있는:

echo 'linuxize' | tr 'ln' 'w-z'

-c ( --complement ) 옵션을 사용하면 tr 은 SET1에없는 모든 문자를 대체합니다.

아래 예에서 "li"를 제외한 모든 문자는 두 번째 세트의 마지막 문자로 바뀝니다.

echo 'linuxize' | tr -c 'li' 'xy'

liyyyiyyy

알다시피, 위의 출력은 입력보다 하나 더 보이는 문자를 가지고 있습니다. echo 명령은 보이지 않는 줄 바꾸기 문자 을 인쇄하기 때문에 y 로 대체되기 때문입니다. 줄 바꿈없이 문자열을 에코하려면 -n 옵션을 사용하십시오.

-d ( --delete ) 옵션은 tr 에게 SET1에 지정된 문자를 삭제하도록 지시합니다. 압착하지 않고 문자를 삭제할 때는 하나의 세트 만 지정하십시오.

아래 명령은 l , i z 문자를 제거합니다.

echo 'Linuxize' | tr -d 'liz'

입력에 대문자 L 포함되고 SET의 l 문자가 소문자이므로 L 문자는 삭제되지 않습니다.

Lnuxe

-s ( --squeeze-repeats ) 옵션은 반복되는 발생 순서를 마지막 SET의 문자 세트로 바꿉니다.

다음 예제에서 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'

결과는 SET1의 문자 e 가 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 'az' 'A-Z'

대문자를 소문자로 변환하려면 간단히 세트의 위치를 ​​전환하십시오.

숫자가 아닌 문자를 모두 제거

다음 명령은 숫자가 아닌 문자를 모두 제거합니다.

echo "my phone is 123-456-7890" | tr -cd

-는 모든 숫자 문자를 나타내며 -c 옵션을 사용하여 숫자가 아닌 모든 문자를 제거합니다. 결과는 다음과 같습니다.

1234567890

각 단어를 새로운 줄에 넣으십시오

각 단어를 새 줄에 넣으려면 영숫자가 아닌 모든 문자를 일치시키고 새 줄로 바꿔야합니다.

echo 'GNU is an operating system' | tr -cs '' '\n'

GNU is an operating system

빈 줄 제거

빈 줄을 삭제하려면 반복적 인 개행 문자를 누르십시오.

tr -s '\n' < file.txt > new_file.txt

위의 명령에서 리디렉션 기호 < 를 사용하여 file.txt 의 내용을 tr 명령으로 전달합니다. 리디렉션은 > 명령의 출력을 new_file.txt 씁니다.

별도의 줄에 $PATH 디렉토리 인쇄

$PATH 환경 변수는 명령을 입력 할 때 실행 파일을 검색 할 디렉토리를 쉘에 알려주는 콜론으로 구분 된 디렉토리 목록입니다.

각 디렉토리를 별도의 줄에 인쇄하려면 콜론 (:)을 일치시키고 새 줄로 바꿔야합니다.

echo $PATH | tr ':' '\n'

/usr/local/sbin /usr/local/bin /usr/sbin /usr/bin /sbin /bin

결론

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

매우 유용하지만 tr 은 단일 문자로만 작동합니다. 보다 복잡한 패턴 일치 및 문자열 조작을 위해서는 sed 또는 awk 를 사용해야합니다.

tr 터미널