sorting unix count uniq natural-sort

sorting - ¿Cómo hacer una salida de tipo natural de “uniq-c” en orden descendente/ascendente?-Unix



count natural-sort (1)

Utilice -n en su comando de sort , para que se ordene numéricamente. También -r te permite revertir el resultado:

$ sort test.txt | uniq -c | sort -n 1 ada 1 ccd 1 cd 1 nnaa 2 aaa 2 bbb 4 aa 10 naa $ sort test.txt | uniq -c | sort -nr 10 naa 4 aa 2 bbb 2 aaa 1 nnaa 1 cd 1 ccd 1 ada

Del man sort :

-n, --numeric-sort

comparar según el valor numérico de la cadena

-r, --verso

revertir el resultado de las comparaciones

¿Cómo hacer una clasificación natural en la salida de uniq -c ?

Cuando los conteos son <10, la uniq -c | sort uniq -c | sort salida de uniq -c | sort se ve bien:

alvas@ubi:~/testdir$ echo -e "aaa/nbbb/naa/ncd/nada/naaa/nbbb/naa/nccd/naa" > test.txt alvas@ubi:~/testdir$ cat test.txt aaa bbb aa cd ada aaa bbb aa ccd aa alvas@ubi:~/testdir$ cat test.txt | sort | uniq -c | sort 1 ada 1 ccd 1 cd 2 aaa 2 bbb 3 aa

pero cuando los conteos son> 10 e incluso en miles / cientos, la clasificación se desordena porque se clasifica por cadena y no por ordenación de enteros naturales:

alvas@ubi:~/testdir$ echo -e "aaa/nbbb/naa/nnaa/nnaa/naa/nnaa/nnaa/nnaa/nnaa/nnaa/nnaa/nnaa/nnaa/nnnaa/ncd/nada/naaa/nbbb/naa/nccd/naa" > test.txt alvas@ubi:~/testdir$ cat test.txt | sort | uniq -c | sort 10 naa 1 ada 1 ccd 1 cd 1 nnaa 2 aaa 2 bbb 4 aa

¿Cómo hacer una salida de tipo natural de "uniq -c" en orden descendente / ascendente?