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

関連情報