n 행으로 단어 정렬

n 행으로 단어 정렬

주어진 파일의 처음 n 줄에 있는 모든 고유 단어와 해당 단어를 인쇄해야 합니다. 발생 횟수를 기준으로 정렬한 다음 알파벳순으로 정렬해야 합니다. (유일한 구분 기호는 ""입니다.) 예: 다음 5줄의 경우:

헤이 헤이 헤이

안녕하세요

아아아아

BB

인쇄하겠습니다

블랙 5

아미노산 2

지하 2층

안녕하세요 2

1

지금까지 내 스크립트는 다음과 같습니다

tr -c [:space:] '\n' <$1|head -n $number_of_rows| sort |uniq -c|sort -k1rn -k2n|awk '{print $2,$1}'

답변1

각 줄이 여러 번 반복되는 단일 단어로 구성되어 있다는 것을 알고 있는 경우 다음을 수행할 수 있습니다.

awk -v n=$number_of_rows '
    NR == n+1 {exit} 
    {print $1, NF}
' file | sort -k2,2rn -k1,1

관련 정보