tr 명령어를 사용한 문자 압축
tr 명령어의 또 다른 유용한 기능은 반복되는 문자를 "압축"하여 동일한 문자가 연속으로 나타나는 경우 단일 인스턴스로 바꾸는 기능입니다. 이 기능은 과도한 공백이나 기타 반복되는 문자가 포함된 텍스트를 처리할 때 특히 유용합니다.
tr 의 압축 옵션
tr 명령어를 사용하여 반복되는 문자를 압축하려면 -s 옵션 뒤에 압축하려는 문자 집합을 사용합니다.
tr -s SET1
여기서 SET1은 압축하려는 문자 집합입니다.
과도한 공백이 있는 샘플 텍스트 파일 생성
실습에 사용할 과도한 공백이 있는 샘플 파일을 만들어 보겠습니다.
echo 'Error: Too much whitespace.' > ~/project/whitespace.txt
이 명령은 /home/labex/project 디렉토리에 여러 개의 연속된 공백이 포함된 텍스트가 있는 whitespace.txt라는 파일을 생성합니다.
텍스트에서 공백 압축
이제 -s 옵션과 함께 tr 명령어를 사용하여 여러 개의 공백을 단일 공백으로 압축해 보겠습니다.
tr -s ' ' < ~/project/whitespace.txt
이 명령을 실행하면 다음과 같은 출력이 표시됩니다.
Error: Too much whitespace.
단어 사이의 여러 공백이 단일 공백으로 줄어들어 텍스트를 더 읽기 쉽게 만들었음을 알 수 있습니다.
명령어 이해
무슨 일이 일어났는지 자세히 살펴보겠습니다.
tr -s ' '는 공백 문자가 반복적으로 나타나는 경우 단일 공백으로 압축하도록 명령합니다.
< 기호는 ~/project/whitespace.txt의 내용을 tr 명령어의 입력으로 리디렉션합니다.
- 결과는 터미널에 표시되지만 파일에는 저장되지 않습니다.
출력을 새 파일에 저장
압축된 공백이 있는 텍스트를 새 파일에 저장하려면 출력 리디렉션을 사용할 수 있습니다.
tr -s ' ' < ~/project/whitespace.txt > ~/project/clean_whitespace.txt
새 파일의 내용을 확인하려면 cat 명령어를 사용합니다.
cat ~/project/clean_whitespace.txt
다음과 같은 내용이 표시됩니다.
Error: Too much whitespace.
tr 작업 결합
tr 명령어를 사용하면 작업을 결합할 수 있습니다. 예를 들어, 문자를 변환하고 압축하는 작업을 단일 명령으로 수행할 수 있습니다.
tr 'a-z' 'A-Z' -s ' ' < ~/project/whitespace.txt
이 명령은 모든 소문자를 대문자로 변환하고 여러 개의 공백을 단일 공백으로 압축합니다.
더 복잡한 예제 생성
실습을 위해 더 복잡한 예제를 만들어 보겠습니다.
echo 'log entry: error code 404 not found' > ~/project/complex.txt
이제 tr을 사용하여 모든 문자를 대문자로 변환하고 공백을 압축해 보겠습니다.
tr 'a-z' 'A-Z' -s ' ' < ~/project/complex.txt > ~/project/processed_complex.txt
결과를 보려면:
cat ~/project/processed_complex.txt
다음과 같은 내용이 표시됩니다.
LOG ENTRY: ERROR CODE 404 NOT FOUND
이제 텍스트에서 반복되는 문자를 압축하기 위해 tr 명령어를 사용하는 방법을 배웠습니다. 이는 이전에 배운 변환 및 삭제 기능과 결합하여 Linux 에서 텍스트 조작을 위한 강력한 도구 상자를 제공합니다.