Como imprimir apenas os valores duplicados de um arquivo de texto?

53

Suponha que haja uma coluna de valores numéricos, como segue:

Arquivo1:

1 
2
3
3
3
4
4
4
5
6

Eu quero a saída:

3  
4

Ou seja, apenas as linhas repetidas. Existe alguma ferramenta de linha de comando para descobrir isso no Linux? (NB: Os valores são numericamente ordenados).

    
por MiNdFrEaK 22.10.2012 / 06:40

3 respostas

90

Você pode usar uniq(1) para isso:

uniq -d file.txt

Isso imprimirá apenas as duplicatas. O arquivo de entrada precisa ser classificado de forma que todas as duplicatas sejam consecutivas (o que parece ser), então, execute-o primeiro pela ordenação, se não for.

    
por 22.10.2012 / 07:29
0

Usando uniq e awk :

cat File1  | uniq -c | awk '$1 > 1 { print $2 }'
    
por 22.10.2012 / 19:24
-1

Execute isto: perl -ne 'print if $a{$_}++' filename.txt

    
por 09.07.2015 / 21:33