답변:
기본 제공 명령을 사용하여이 작업을 쉽게 수행 할 수 있습니다.
sort
. 다음 단계에는 이것이 필요합니다.uniq -c
. 각 줄의 고유 한 발생 횟수를 계산합니다. 비슷한 줄이 인접하지 않으면 이전에 정렬하지 않고 작동하지 않았을 것입니다.sort
하여 역순으로 정렬하고 ( r
) 출력 의 숫자 ( n
) 해석을 기반으로합니다 uniq
. 그렇지 않으면 숫자 옵션이 필요합니다. 숫자 앞의 공백은 잘못된 결과로 이어질 수 있습니다 ( GNU sort
의 도움말 참조).head
.명령은 다음과 같습니다.
sort test.txt | uniq -c | sort -rn | head -n 12
여기의 출력에는 실제 발생 횟수가 포함됩니다.
원시 행 목록 만 가져 오려면 출력을 sed
다음으로 파이프하십시오 .
sort test.txt | uniq -c | sort -rn | head -n 12 | sed -E 's/^ *[0-9]+ //g'
I'm not there very often
I'm not there very often
Look at me!
Look at me!
Look at me!
Hello there!
Hello there!
Hello there!
Hello there!
Hello there!
Hello there!
첫 번째 명령의 출력이지만 다음 중에서 2 만 선택합니다 head
.
6 Hello there!
3 Look at me!
두 번째 명령의 출력 :
Hello there!
Look at me!
uniq
.
sort -rn
역순 종류는 다음에 의해 생성 된 각각의 라인 수를 필드 정렬로 사용 uniq -c
? 내가 좋아하는 뭔가를 생각 k1
하거나 같은 것을 사용할 것
r
에 n
의해 생성 된 수를 반대로하여 숫자로 정렬합니다 uniq
. 정확히 무엇을 의미 k1
합니까?
man
사용하는 구문을 -k
사용해야 한다는 것을 이해했다