Eu percebi isso; uma das opções de uniq
é -c
, para "linhas de prefixo pelo número de ocorrências":
$ uniq -c
Digamos que eu tenha um arquivo que contenha:
A
A
A
B
CC
Eu quero ter a saída assim:
A 3
B 1
CC 1
Eu acabei de vir aqui com um problema semelhante. A partir disso, consegui reunir um comando um pouco mais avançado, que espero ser útil para os outros.
Como Steven D disse nos comentários acima, uniq
conta apenas linhas de repetição adjacentes, então você precisa classificar as linhas primeiro. Depois disso, encontramos as linhas únicas e classificamos novamente, de modo que as linhas mais comuns estejam no topo.
sort file.txt | uniq -c | sort -nr > output.txt
A saída é redirecionada para o arquivo output.txt
. Se você quiser apenas ver os resultados na linha de comando, remova o redirecionamento e altere o último comando para sort -n
para que a linha mais comum esteja na parte inferior, ou seja, definitivamente ainda na tela.
Tags text-processing