A resposta idiomática do awk é awk -F, '!seen[$3]++' file
Isso imprimirá uma linha na primeira vez que um valor for visto na terceira coluna.
Se a entrada for
foo,bar,baz
bar,baz,qux
qux,quux,baz
bar,foo,qux
waldo,fred,garply
a saída deve ser
foo,bar,baz
bar,baz,qux
waldo,fred,garply
Como você pode ver, os registros são desduplicados com base no valor da terceira coluna. Se vários registros tiverem o mesmo valor da terceira coluna, escolha um aleatório (ou o primeiro; não importa)
Se você não se incomoda com a ordem da saída, pode usar apenas sort
, como abaixo.
-t,
define o delimitador de campo como "," -k3
define a chave de ordenação como o terceiro campo -u
indica que somente resultados exclusivos são desejados
$ sort -t, -k3 -u arquivo foo, bar, baz waldo, fred, garply bar, baz, qux $