시작하기무료로 시작하기

중복된 줄을 어떻게 제거하나요?

종종 sort와 함께 사용하는 또 다른 명령은 uniq입니다. uniq의 역할은 중복된 줄을 제거하는 것입니다. 좀 더 정확히 말하면, 서로 인접한 중복 줄을 제거합니다. 파일에 다음과 같이 있다면:

2017-07-03
2017-07-03
2017-08-03
2017-08-03

uniq는 다음을 출력합니다:

2017-07-03
2017-08-03

하지만 파일에 다음과 같이 있다면:

2017-07-03
2017-08-03
2017-07-03
2017-08-03

uniq는 네 줄 모두를 출력합니다. 그 이유는 uniq가 매우 큰 파일에서도 동작하도록 설계되었기 때문입니다. 인접하지 않은 중복 줄을 제거하려면 파일 전체를 메모리에 보관해야 하며 (적어도 지금까지 본 모든 고유한 줄은 보관해야 합니다). 인접한 중복만 제거하면 가장 최근의 고유한 한 줄만 메모리에 보관하면 됩니다.

이 연습은 강의의 일부입니다

Shell 입문

강의 보기

연습 안내

다음 작업을 수행하는 파이프라인을 작성하세요:

  • seasonal/winter.csv에서 두 번째 열을 가져오고,
  • 출력에서 "Tooth"라는 단어를 제거하여 치아 이름만 표시하고,
  • 동일한 치아 이름이 서로 인접하도록 출력 결과를 정렬하며,
  • 각 치아 이름이 몇 번 나타나는지 빈도와 함께 한 번씩만 표시합니다.

파이프라인의 시작은 이전 연습 문제와 같습니다:

cut -d , -f 2 seasonal/winter.csv | grep -v Tooth

여기에 sort 명령을 이어 붙이고, uniqwc를 사용하는 대신 uniq -c로 각 고유한 줄과 그 빈도를 함께 표시하세요.

실습형 인터랙티브 연습문제

이론을 실습으로 바꾸는 인터랙티브 연습 중 하나를 만나보세요

연습 시작