< text tr -cs '[:alnum:]' '[\n*]' |
awk '++count[$0] == 10' |
sort
Substitua $0
por tolower($0)
se você quiser ignorar o caso.
Que tr analisa s equações de caracteres que são o c omplement do al pha numéricos para ewlines n . awk
imprime a décima ocorrência de cada.
Observe que nos sistemas GNU, tr
não funciona corretamente em caracteres de vários bytes . No entanto, nesses sistemas, você pode usar a extensão grep
do GNU -o
em vez disso:
< text grep -Eo '[[:alnum:]]+' |
awk '++count[$0] == 10' |
sort
Você pode mudar isso para
< text grep -Eo '[^[:punct:][:space:]]+' |
awk '++count[$0] == 10' |
sort
para considerar os caracteres que não são punct uation nem space (ou tr -s '[:punct:][:space:]' '[\n*]'
acima para o sistema não-GNU ou texto all-ASCII) que em o texto Guerra e Paz fornece o mesmo resultado.
Note que nos sistemas GNU pelo menos, isso ainda pode dar resultados errados, pois os acentos de combinação Unicode, por exemplo, são classificados como pontuação e não alnums (eles não aparecem nesse texto, embora os caracteres acentuados estejam em sua forma combinada).