Exibe apenas linhas duplicadas, ignorando os primeiros x espaços por linha

4

Eu tenho um arquivo com linhas numeradas. Os números ocupam os primeiros 7 espaços de cada linha. Eu quero verificar o restante da linha para duplicatas e apenas as duplicatas de saída.

Por exemplo, meu arquivo pode ser:

     1 abcde
     2 12345789 
     3 6789   
     4 000000
     5 abcde

Nesse caso, eu gostaria que minha saída fosse:

     1 abcde
     5 abcde

A formatação de saída não importa muito, é claro, mas seria ótimo se as sequências de caracteres duplicadas fossem combinadas para que eu as encontrasse mais facilmente.

Estou usando o Linux.

    
por user146854 16.12.2015 / 12:40

1 resposta

4

sort do arquivo no segundo campo, e diga ao GNU uniq para pular os primeiros 7 caracteres ( -s 7 ), dizendo para imprimir linhas repetidas ( -D ):

$ sort -k2,2 foo | uniq -Ds 7
     1 abcde
     5 abcde
    
por 16.12.2015 / 12:51