imprimir apenas os valores exclusivos da primeira coluna, comparando duas colunas no Linux

1

Eu tenho um arquivo de texto com um exemplo (duas colunas separadas por um:)

se a primeira linha da primeira coluna for repetida novamente, não a considere e forneça a saída

11:22

33:44

55:66

55:77

minha saída desejada deve ser

11:22

33:44

    
por ltps 15.10.2016 / 05:17

2 respostas

1

sort file | uniq --unique --check-chars=2

Estou fazendo duas suposições:

  • não há problema em alterar a ordem da linha (classificar)
  • a primeira coluna terá sempre dois caracteres de largura
por 15.10.2016 / 08:25
0

Para excluir as linhas que têm apenas a repetição da primeira coluna :

sort file | uniq -u -w 1

Para excluir as linhas que têm a repetição do primeiro campo quando delimitado por dois pontos :

cut -d: -f1 file | sort | uniq -u

Nos dois casos, precisamos sort do arquivo antes de enviar a saída para uniq (pois uniq funciona nas linhas correspondentes adjacentes). Então, faça uniq com algumas opções.

Da página de manual uniq :

-u:     only print unique lines
-w N:   compare no more than N characters in lines
    
por 17.10.2016 / 11:50