예를 들어 list.txt입니다.
Joe 3
Jack 1
Ulysses 6
Fox 2
Cassidy 1
Jones 6
Kevin 7
5
그러면 두 번째 열에 5개의 서로 다른 값이 있으므로 출력이 나와야 합니다 .
just를 사용하여 이를 어떻게 수행해야 합니까 sort
cut
wc
uniq
?
sort -k2n
먼저 두 번째 열을 오름차순으로 정렬하는 아이디어가 있습니다 uniq
.
Cassidy 1
Fox 2
Joe 3
Jones 6
Kevin 7
그런 다음 cut -d ' ' -f2
모든 숫자를 나열한 1 2 3 6 7
다음 wc -d
반환될 고유 값의 수를 계산 하는 데 사용합니다 5
.
uniq
동일한 번호의 중복 행을 제거하려면 섹션에서 무엇을 해야 합니까 ?
이것을 달성하는 쉬운 방법이 있습니까?
답변1
cut
열 2의 고유성에만 관심이 있으므로 다음부터 시작하겠습니다 .
cut -d' ' list.txt
결과 :
1
2
1
3
6
7
6
이제 고유한 값을 원하면 uniq가 이를 수행하지만 정렬된 경우에만 가능합니다. 정렬하려면 -u 플래그를 사용하여 정렬하세요.
cut -d' ' -f2 list.txt | sort -u
결과 :
1
2
3
6
7
wc
이제 다음을 사용하여 출력 행 수를 계산할 수 있습니다 .
cut -d' ' -f2 list.txt | sort -u | wc -l
이는 다음을 제공합니다.
5
우리는 list.txt 파일의 특정 형식을 사용합니다. 사람 이름에는 공백이 없습니다!
답변2
나는 다음을 선택할 것이다:
sort -k2,2 -u names | wc -l
5
이 콘텐츠는 어디에서 names
찾을 수 있나요?
cat names
Joe 3
Jack 1
Ulysses 6
Fox 2
Cassidy 1
Jones 6
Kevin 7
답변3
를 사용해야 하기 때문에 -sort -cut -wc -uniq
필요한 명령줄은 다음과 같아야 합니다.
$ cut -d' ' -f2 file.txt | sort -n | uniq | wc -l
5