Digamos que tengo un archivo que contiene:
A
A
A
B
CC
Quiero tener la salida de esta manera:
A 3
B 1
CC 1
text-processing
Cheng
fuente
fuente

uniq -c filename.txt | sed 's/[^0-9]*\\([0-9]\+\\) \\(.*\\)/\2 \1/'sort | uniqA \ A \ A \ B \ A \ CC, la salida de solouniq -cse mostraríaA 3y luego se mostraríaA 1. Ordenar primero, garantizará que todas las líneas idénticas se agrupen juntasAcabo de llegar aquí con un problema similar. A partir de esto, logré armar un comando un poco más avanzado, que espero sea útil para otros.
Como dijo Steven D en los comentarios anteriores,
uniqsolo cuenta las líneas de repetición adyacentes, por lo que primero debe ordenar las líneas. Después de eso, encontramos las líneas únicas y luego ordenamos nuevamente para que las líneas más frecuentes estén en la parte superior.La salida se redirige al archivo
output.txt. Si solo desea ver los resultados en la línea de comando, elimine la redirección y cambie el último comando parasort -nque la línea más común esté en la parte inferior, es decir, definitivamente todavía en la pantalla.fuente
cat file.txt | sortcon solosort file.txt. :)catcon algo más interesante. Ya que, ya sabes, no haycat.< file.txt sort | uniq -c. Esto es fácil de editar y aún evita lo innecesariocat.