Se você sabe que cada linha consiste em uma única palavra repetida várias vezes, você pode fazer:
awk -v n=$number_of_rows '
NR == n+1 {exit}
{print $1, NF}
' file | sort -k2,2rn -k1,1
Eu preciso imprimir todas as palavras únicas e suas ocorrências das primeiras n linhas em um arquivo de dar. Eu tenho que classificado pelo seu número de ocorrências e, em seguida, em ordem alfabética (o único separador é "") ex: para as 5 linhas seguintes:
hei hei hei hei hei
hello hello
aa aa
b b
a
vou imprimir
hei 5
aa 2
b 2
hello 2
a 1
Até agora, meu roteiro é:
tr -c [:space:] '\n' <$1|head -n $number_of_rows| sort |uniq -c|sort -k1rn -k2n|awk '{print $2,$1}'
Se você sabe que cada linha consiste em uma única palavra repetida várias vezes, você pode fazer:
awk -v n=$number_of_rows '
NR == n+1 {exit}
{print $1, NF}
' file | sort -k2,2rn -k1,1