uniq 명령어는 텍스트 파일이나 입력된 데이터에서 중복된 라인을 제거하는 데 사용됩니다. 이 명령어는 파일 내에서 연속으로 나타나는 중복된 라인만 처리하기 때문에, 중복된 라인을 효과적으로 처리하려면 먼저 sort 명령어를 사용하여 데이터를 정렬한 후 uniq 명령어를 사용하는 것이 일반적입니다.
uniq 명령어의 기본 사용법
uniq [옵션] [파일명]
파일명을 지정하지 않으면 표준 입력에서 데이터를 받아 처리할 수 있습니다. uniq 명령어는 중복된 라인을 제거하는 것 외에도 중복된 라인의 개수를 출력하거나, 중복되지 않은 라인만 출력하는 등의 다양한 기능을 제공합니다.
uniq 명령어 주요 옵션
- -c: 각 라인의 중복 개수를 출력합니다.
- -d: 중복된 라인만 출력합니다.
- -u: 중복되지 않은 라인만 출력합니다.
- -i: 대소문자를 무시하고 중복을 처리합니다.
- -f N: 첫 번째부터 N개의 필드를 무시하고 중복을 처리합니다.
- -s N: 각 라인의 처음 N개의 문자를 무시하고 중복을 처리합니다.
uniq 명령어 사용 예시
기본 중복 제거
uniq 명령어는 기본적으로 연속된 중복 라인을 제거합니다. 예를 들어 sample.txt 파일에서 중복된 라인을 제거하는 명령어는 다음과 같습니다.
user@linux:~/documents$ uniq sample.txt
sample.txt 파일의 내용이 다음과 같을 때:
apple
banana
banana
cherry
apple
명령어 실행 결과:
apple
banana
cherry
apple
중복된 banana가 한 번만 남고, 다른 중복되지 않은 라인은 그대로 유지됩니다.
중복된 라인 카운트 출력
-c 옵션을 사용하면 각 라인이 몇 번 중복되었는지 카운트를 출력할 수 있습니다.
user@linux:~/documents$ uniq -c sample.txt
명령어 실행 결과:
1 apple
2 banana
1 cherry
1 apple
여기서 각 라인의 앞에 중복 횟수가 표시됩니다.
중복된 라인만 출력
-d 옵션을 사용하면 중복된 라인만 출력할 수 있습니다.
user@linux:~/documents$ uniq -d sample.txt
명령어 실행 결과:
banana
banana가 두 번 등장했기 때문에 중복된 라인으로 출력됩니다.
중복되지 않은 라인만 출력
-u 옵션을 사용하면 중복되지 않은 라인만 출력할 수 있습니다.
user@linux:~/documents$ uniq -u sample.txt
명령어 실행 결과:
apple
cherry
apple
중복되지 않은 apple과 cherry가 출력됩니다.
대소문자 무시하고 중복 처리
-i 옵션을 사용하면 대소문자를 무시하고 중복 라인을 처리할 수 있습니다.
user@linux:~/documents$ uniq -i sample2.txt
sample2.txt 파일의 내용이 다음과 같을 때:
Apple
apple
Banana
banana
명령어 실행 결과:
Apple
Banana
대소문자 차이를 무시했기 때문에 Apple과 apple은 중복으로 처리되고, Banana도 동일하게 처리됩니다.
필드나 문자 무시하고 중복 처리
예를 들어, 각 라인의 첫 번째 필드나 N개의 문자를 무시하고 중복을 제거할 수 있습니다. -f와 -s 옵션을 조합해서 사용하면 됩니다. 예를 들어 -f 1 옵션을 사용하면 첫 번째 필드를 무시하고 처리할 수 있습니다.
user@linux:~/documents$ uniq -f 1 sample3.txt
uniq 명령어의 활용도
uniq 명령어는 로그 파일 분석이나 데이터 정리 작업에서 자주 사용됩니다. 예를 들어, 로그 파일에서 특정 이벤트가 몇 번 발생했는지 확인할 때 sort와 uniq -c를 조합하여 쉽게 분석할 수 있습니다. 또한, 중복된 데이터 처리나 텍스트 데이터 분석에도 매우 유용합니다.
참고사이트
'Linux' 카테고리의 다른 글
[리눅스] apt-get upgrade 명령어 완벽 가이드 사용법(설치된 패키지 업데이트) (0) | 2024.10.15 |
---|---|
[리눅스] apt-get update 명령어 완벽 가이드 사용법(패키지 목록 업데이트) (0) | 2024.10.15 |
[리눅스] wc 명령어 완벽 가이드 사용법(단어, 문자 수 세기) (0) | 2024.10.15 |
[리눅스] tr 명령어 완벽 가이드 사용법(문자 변환/삭제) (0) | 2024.10.15 |
[리눅스] sort 명령어 완벽 가이드 사용법(파일 정렬) (0) | 2024.10.14 |
[리눅스] cut 명령어 완벽 가이드 사용법(특정 문자 추출) (0) | 2024.10.14 |
[리눅스] awk 명령어 완벽 가이드 사용법(패턴 기반 텍스트 처리) (0) | 2024.10.14 |
[리눅스] sed 명령어 완벽 가이드 사용법(파일 내 문자열 변환) (1) | 2024.10.13 |