uniq 명령어는 각 입력 줄을 바로 앞 줄과 비교합니다. 인접한 동일 줄 그룹을 압축하거나 세거나 선택할 수 있지만 파일 전체에서 떨어져 있는 중복을 검색하지는 않습니다.
Text-Fu · 레슨 14
uniq (고유 항목)
uniq로 인접한 동일 줄 그룹을 압축하고 세거나 필터링하는 방법을 배웁니다.
인접한 중복 줄 압축하기
reading.txt에 다음처럼 그룹화된 값이 있다고 가정합니다.
book
book
paper
paper
article
article
magazine
필터링 옵션 없이 uniq를 실행하면 인접한 각 그룹에서 대표 줄 하나를 출력합니다.
$ uniq reading.txt
book
paper
article
magazine
결과는 표준 출력으로 가므로 입력 파일은 변경되지 않습니다.
기본적으로 uniq reading.txt는 무엇을 하나요?
인접 그룹 세기
-c를 사용하면 각 출력 그룹 앞에 연속된 입력 줄 수를 붙입니다.
$ uniq -c reading.txt
2 book
2 paper
2 article
1 magazine
동일한 줄을 먼저 인접하게 만들지 않았다면 이 값은 전체 합계가 아니라 연속 구간의 길이입니다.
uniq -c의 개수는 무엇을 나타내나요?
고유 그룹이나 반복 그룹 선택하기
정확히 한 줄만 포함한 그룹을 출력하려면 -u를 사용합니다.
$ uniq -u reading.txt
magazine
두 줄 이상인 인접 그룹마다 대표 줄 하나를 출력하려면 -d를 사용합니다.
$ uniq -d reading.txt
book
paper
article
GNU uniq -D는 반복 그룹의 모든 줄을 출력하지만 소문자 -d는 각 반복 그룹의 값을 한 번만 출력합니다.
인접 그룹 중 정확히 한 번만 나타난 그룹만 출력하는 명령어는 무엇인가요?
두 번 이상 나타난 인접 그룹마다 한 줄을 출력하는 명령어는 무엇인가요?
떨어져 있는 중복 그룹화하기
같은 줄이 떨어져 있으면 서로 다른 그룹을 만듭니다.
book
paper
book
paper
article
magazine
article
이 파일에 uniq를 실행하면 예상 밖의 결과가 나올 수 있습니다.
$ uniq reading.txt
book
paper
book
paper
article
magazine
article
이웃한 값이 다르므로 어떤 줄도 압축되지 않습니다. 순서가 바뀌어도 되고 같은 전체 줄을 함께 그룹화하려면 먼저 정렬합니다.
$ sort reading.txt | uniq
article
book
magazine
paper
두 단계에서 일관된 로캘과 비교 정책을 사용하세요. sort -u reading.txt도 한 명령어로 정렬하고 동일 정렬 키마다 한 줄을 유지할 수 있습니다.
같은 줄이 reading.txt 곳곳에 흩어져 있고 출력 순서가 바뀌어도 됩니다. 서로 다른 전체 줄마다 정렬된 사본 하나를 만드는 파이프라인은 무엇인가요?
입력 파일을 지정하지 않으면 uniq는 표준 입력을 읽으므로 sort 뒤에 자연스럽게 사용할 수 있습니다. GNU의 -i는 대소문자를 무시할 수 있고 -f, -s, -w는 비교 영역을 건너뛰거나 제한할 수 있습니다. 각 줄의 일부로 동등성을 정의해야 할 때만 사용하세요.
중복 그룹화, 계산, 필터링을 연습하려면 다음 실습을 진행해 보세요.
- Linux uniq 명령어: 중복 필터링 -
uniq와sort를 결합해 텍스트 파일의 중복 줄을 식별하고 필터링하며 분석합니다. - Linux sort 명령어: 텍스트 정렬 -
uniq를 효과적으로 사용하기 위한 핵심 단계인 텍스트 줄 정렬을 연습합니다. - 단어 수 세기와 정렬 -
wc와sort로 줄, 단어, 문자를 세고 자주 나타나는 패턴을 찾아 데이터를 정렬합니다.
레슨 완료
uniq (고유 항목) 완료
이제 uniq로 인접한 동일 줄 그룹을 분석할 수 있습니다.
인접한 각 중복 그룹을 한 줄로 압축할 수 있습니다.
-c로 연속 출현 횟수를 셀 수 있습니다.-u로 단일 그룹을 선택할 수 있습니다.-d또는 GNU-D로 반복 그룹을 선택할 수 있습니다.떨어진 중복을 그룹화해야 할 때 먼저 정렬할 수 있습니다.