Encontre linhas duplicadas

0

Eu tenho um arquivo que contém o seguinte conteúdo.

Hi
abcd
Hi
abc
hello
hello
xyz
hello

Eu quero descobrir linhas duplicadas, bem como quantas vezes ele está repete. Minha saída esperada é a seguinte.

2 Hi
3 hello

Eu usei o seguinte comando alreay, que me dava uma linha duplicada, uma após a outra (ou seja, Hello Hello, funciona, mas Hello hi Hello, não funcionou)

uniq -d filename
    
por JalT 10.05.2016 / 07:37

1 resposta

2

Você precisa sort do arquivo de entrada antes de passar para uniq para tornar as mesmas linhas sequenciais / adjacentes:

sort file.txt | uniq -dc

-c contará o número de ocorrências de linhas repetidas.

Exemplo:

$ sort file.txt | uniq -dc
3 hello
2 Hi

$ sort file.txt | uniq -dc | sort -k1,1n  ## Your expected output
2 Hi
3 hello
    
por heemayl 10.05.2016 / 07:40