Computer >> 컴퓨터 >  >> 프로그램 작성 >> BASH 프로그래밍

예제가 있는 Linux tr 명령

Linux 및 Unix 시스템에서 tr 번역, 지우기 및 “압착하는 명령줄 유틸리티입니다. " 반복되는 문자 – 사실 tr은 "번역 .” 이 가이드에서는 Linux에서 tr 명령을 사용하는 방법을 예제와 함께 설명합니다. 반복되는 문자 제거, 소문자를 대문자로 변환, 기본 문자 교체 및 제거와 같은 작업에 사용할 수 있습니다. 파이핑을 통해 다른 명령어와 함께 사용하는 경우가 많습니다.

Linux는 Android를 포함하여 우리가 일상적으로 사용하는 많은 기술의 이면에 있는 기본 커널/운영 체제 코어입니다. 오픈 소스이며 쉽게 구성할 수 있습니다.

tr 명령어 사용법

tr 명령을 실행하는 구문은 다음과 같습니다. 여기서 SET1의 문자는 SET2의 문자로 번역됩니다. :

tr OPTION... SET1 [SET2]

tr 명령은 두 세트의 문자(보통 동일한 길이)를 허용합니다. 그런 다음 첫 번째 집합의 문자를 두 번째 집합의 해당 문자로 바꿉니다. 이 시나리오에서는 SET 문자열이며 백슬래시로 이스케이프된 특수 문자를 포함합니다.

예시

다양한 문자 사용

원하는 경우 문자 클래스 대신 범위를 사용할 수도 있습니다.

echo 'hello' | tr 'a-z' 'A-Z'

반대로 변환하려면 세트의 위치를 ​​바꾸면 됩니다.

대소문자 변환

대문자를 소문자로 또는 그 반대로 변환하는 것은 tr 명령의 가장 일반적인 사용 사례 중 하나입니다.

[:낮은:] 모든 소문자와 일치하고 [:upper:] 모든 대문자와 일치합니다.

echo 'Hello' | tr '[:lower:]' '[:upper:]'
HELLO

빈 줄 제거

빈 줄을 삭제하려면 "squeeze " 반복되는 개행 문자:

tr -s '\n' < input.txt > output.txt

위의 경우 리디렉션 기호를 사용하여 명령의 출력을 output.txt에 씁니다. .

숫자가 아닌 모든 문자 제거

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

echo "The account number is 10879358" | tr -cd [:digit:]

[:digit:] 모든 숫자 문자를 나타냅니다. -c를 사용하여 옵션에서 명령은 숫자가 아닌 문자를 제거합니다. 후속 출력은 다음과 같습니다.

10879358

$PATH 디렉토리를 새 줄에 인쇄

$PATH 환경 변수는 명령을 입력할 때 실행 파일을 찾을 디렉토리를 쉘에 알려주는 디렉토리 목록(콜론으로 구분)입니다. 각 디렉토리를 별도의 새 줄에 인쇄하려면 콜론(: ) 그런 다음 새 줄 명령으로 바꾸십시오.

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

/usr/local/sbin
/usr/local/bin
/usr/sbin
/usr/bin
/sbin
/bin
/usr/games
/usr/local/games
/snap/bin

각 단어를 새 줄에 입력

이렇게 하려면 모든 문자(영숫자가 아닌 ) 그런 다음 새 줄로 바꿉니다.

echo 'Linux is the best operating system in the world' | tr -cs '[:alnum:]'

출력은 다음과 같습니다.

Linux
is
the
best
operating
system
in
the
world

문자 바꾸기

표준 입력('코딩')의 문자를 두 번째 세트의 해당 문자로 교체하려는 경우

echo 'coding' | tr 'co' 'hi'

"c"의 각 발생은 "h"로 대체되고 "o"는 "i"로 대체되며 결과는 다음과 같습니다.

hiding

문자 집합은 문자 범위를 사용하여 정의할 수도 있습니다. 예를 들어 다음과 같이 작성하는 대신:

echo 'coding' | tr 'abcd' 'wxyz'

다음을 사용할 수 있습니다.

echo 'coding' | tr 'a-d' 'w-z'
yozing

-c일 때 옵션이 사용되면 tr은 아닌 모든 문자를 대체합니다. SET1에서 .

다음 예에서 "li를 제외한 모든 문자 "는 두 번째 세트의 마지막 문자로 대체됩니다.

$ echo 'coding' | tr -c 'cod' 'xy'
liyyyiyyy

줄 바꿈 없이 문자열을 에코하려면 -n 옵션을 사용하십시오.

-d 옵션은 SET1에 지정된 문자를 삭제하도록 tr에 지시합니다. . 짜지 않고 하고 싶을 때는 한 세트만 지정해야 합니다.

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

echo 'Linuxize' | tr -d 'liz'