Apagar linhas em que texto após caractere é duplicado

0

Eu tenho uma lista de intervalos de IP no seguinte formato:

Long description:111.22.33.0-111.22.33.40
Another description:5.5.5.0-5.5.5.100
Yet another description:111.22.33.0-111.22.33.40
And another one:111.22.33.0-111.22.33.40
Something different:8.1.1.0-8.1.1.20
etc.

Gostaria de excluir linhas com intervalos de IP duplicados, mesmo quando a "descrição" for diferente (por exemplo, apenas corresponder ao texto após o caractere:).

O exemplo acima deve se tornar:

Long description:111.22.33.0-111.22.33.40
Another description:5.5.5.0-5.5.5.100
Something different:8.1.1.0-8.1.1.20
    
por Mark Roi 05.07.2018 / 18:06

1 resposta

2

Você poderia pedir sort para as linhas exclusivas com base no segundo campo, delimitadas por dois-pontos:

sort -u -t: -k2 < input > output

O trabalho árduo é feito por -u , que:

output(s) only the first of an equal run

(minha ênfase)

Referência:

por 05.07.2018 / 18:10