반응형
uniq 명령어
uniq 명령어는 파일이나 입력에서 연속으로 중복된 줄을 제거하거나 중복 여부를 확인하는 데 사용됩니다. 이 명령어는 주로 sort 명령어와 함께 사용됩니다. 이유는 uniq는 연속된 중복 줄만 처리하기 때문입니다. 따라서 데이터를 정렬한 후 사용하는 것이 일반적입니다.
기본 문법
uniq [OPTION]... [INPUT [OUTPUT]]
- 입력 파일 : uniq가 처리할 파일입니다. 생략하면 표준 입력(STDIN)을 사용합니다.
- 출력 파일 : 처리 결과를 저장할 파일입니다. 생략하면 표준 출력(STDOUT)을 사용합니다.
uniq 주요 옵션
- -c : 중복된 줄의 개수를 출력합니다.
- -d : 중복된 줄만 출력합니다.
- -u : 고유한(중복되지 않은) 줄만 출력합니다.
- -i : 대소문자를 구분하지 않습니다.
- -f : 각 줄의 처음 N개의 필드를 무시하고 비교합니다.
- -s : 각 줄의 처음 N개의 문자를 무시하고 비교합니다.
- -z : 줄 끝을 널(\0) 문자로 처리합니다. (GNU 확장 옵션)
사용 예시
예제 데이터 생성
cat <<EOF | sudo tee -a file.txt
apple
banana
cherry
apple
apple
banana
cherry
cherry
EOF
1. 중복된 줄 제거
입력 파일에서 연속된 중복 줄을 제거하고 결과를 출력합니다.
cat file.txt | uniq
apple
banana
cherry
apple
banana
cherry
2. 중복 횟수 표시
중복된 줄 앞에 중복 횟수를 출력합니다.
cat file.txt | uniq -c
1 apple
1 banana
1 cherry
2 apple
1 banana
2 cherry
3. 중복된 줄만 출력
연속으로 나타난 중복된 줄만 출력합니다.
cat file.txt | uniq -d
apple
cherry
4. 고유한 줄만 출력
중복되지 않은 고유한 줄만 출력합니다.
cat file.txt | uniq -u
apple
banana
cherry
banana
5. 정렬 후 중복 제거
데이터를 정렬한 후 중복 줄을 제거합니다. 정렬되지 않은 파일에서는 연속된 중복만 제거되므로 정렬 과정이 필요합니다.
sort file.txt | uniq
apple
banana
cherry
6. 대소문자 구분 없이 비교
대소문자 구분 없이 중복된 줄을 처리합니다.
cat file.txt | uniq -i
apple
banana
cherry
apple
banana
cherry
7. 특정 문자를 무시하고 비교
각 줄의 처음 2문자를 무시하고 나머지 부분으로 중복 여부를 비교합니다.
cat file.txt | uniq -s 2
apple
banana
cherry
apple
banana
cherry
8. 중복된 줄과 고유한 줄 확인
중복 횟수를 내림차순으로 정렬하여 가장 많이 중복된 줄을 확인합니다.
sort file.txt | uniq -c | sort -nr
3 cherry
3 apple
2 banana
정렬 후 중복 제거
sort file.txt | uniq -c
3 apple
2 banana
3 cherry
uniq는 중복된 데이터를 정리하거나 패턴 분석에 유용합니다. 다른 명령어(sort, grep, awk)와 함께 사용하면 더 강력하게 활용할 수 있습니다.
참고URL
- Ubuntu Manpage : noble uniq
728x90
반응형
'리눅스' 카테고리의 다른 글
Docker 이미지를 효율적으로 빌드하기 위한 방법 (0) | 2025.01.17 |
---|---|
sort 명령어 (0) | 2025.01.16 |
SSL 인증서 확인 (0) | 2025.01.16 |
ps kill 명령어 (0) | 2025.01.16 |
GitHub Actions를 사용해 Spring Boot 애플리케이션을 빌드하고 Docker 이미지를 생성하여 Docker Hub에 업로드하는 방법 (0) | 2025.01.14 |