리눅스 sort와 uniq 명령어: 텍스트 파일 정렬 및 중복 줄 제거하기

리눅스 sort와 uniq 명령어: 텍스트 파일 정렬 및 중복 줄 제거하기

리눅스에서 텍스트 파일을 다룰 때, 파일 내용을 정렬하거나 중복된 내용을 제거해야 할 경우가 종종 있습니다. 이때 사용할 수 있는 두 가지 명령어가 sortuniq입니다. 이 글에서는 두 명령어의 기본 사용법과 유용한 옵션들을 살펴보겠습니다.

☞ 포스트 기준: 리눅스 배포판 CentOS 7

1. sort 명령어

sort 명령어는 파일의 내용을 줄 단위로 정렬합니다. 기본적으로는 알파벳 순서로 정렬하지만, 다양한 옵션을 사용하여 정렬 방식을 바꿀 수 있습니다.

$ sort 파일명

주요 옵션 및 설명

옵션설명
-n숫자를 기준으로 정렬합니다.
-r역순으로 정렬합니다.
-k지정된 필드를 기준으로 정렬합니다.

sort 명령어 사용 예제

리눅스에서 sort 명령어를 사용하는 기본적인 방법부터 시작해 볼까요? 가장 간단한 형태는 파일의 내용을 알파벳 순으로 정렬하는 것입니다.

sort file1.txt

이 명령은 file1.txt 파일의 내용을 알파벳 순으로 표준 출력에 출력합니다. 각 줄을 시작하는 첫 번째 문자를 기준으로 정렬하게 됩니다.

만약 파일의 내용 중 두 번째 열, 즉 여기서는 나이를 기준으로 정렬하려면 -k 옵션을 사용하여 정렬할 열을 지정하고, -n 옵션을 사용하여 숫자 순서대로 정렬할 수 있습니다.

sort -k 2 -n file1.txt

위 명령은 file1.txt 파일의 두 번째 열을 기준으로 숫자 순서대로 정렬한 결과를 출력합니다. 이렇게 sort 명령어는 다양한 옵션을 사용하여 강력한 텍스트 정렬 기능을 제공합니다.

리눅스 sort 명령어 사용 예제

2. uniq 명령어

uniq 명령어는 인접한 중복 줄을 제거합니다. 정렬된 파일에서 사용하면 더욱 효과적입니다.

$ uniq 파일명

주요 옵션 및 설명

옵션설명
-c줄이 등장하는 횟수를 함께 출력합니다.
-d중복된 줄만을 출력합니다.
-u중복되지 않은 줄만을 출력합니다.

uniq 명령어 사용 예제

uniq 명령어는 중복된 줄을 필터링하여 출력합니다. 파일 내에서 연속적으로 중복된 줄만을 제거합니다. 따라서 정렬된 파일에서 가장 효과적으로 작동합니다. 아래 예시에서는 ‘file2.txt’ 파일에 있는 중복 줄을 제거하는 방법을 보여줍니다.

uniq file2.txt

위 명령어를 실행하면, ‘file2.txt’ 파일에서 연속 중복된 줄이 제거된 결과가 표시됩니다.

리눅스 uniq 명령어 사용 예제
sort file2.txt | uniq

3. 명령어 사용 예제

다음은 sortuniq 명령어를 함께 사용하는 예제입니다.

$ sort 파일명 | uniq

위 명령어는 파일을 정렬한 후 중복된 줄을 제거합니다.

만약 중복된 줄의 수와 함께 출력하고 싶다면 다음과 같이 합니다.

$ sort 파일명 | uniq -c
리눅스 sort와 uniq 명령어 동시 사용 예제

관련 이전 게시글


다음 글에서도 리눅스의 기본 명령어에 대해 알아보겠습니다. 이 글이 도움이 되셨다면 공유 부탁드립니다!

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

위로 스크롤