Apenas altere seu comando awk para a coluna que você deseja executar para remover linhas duplicadas com base em (no seu caso, terceira coluna):
awk '!seen[$3]++' filename
Este comando está dizendo awk
quais linhas imprimir. A variável $3
contém todo o conteúdo da coluna 3 e colchetes são acesso à matriz. Portanto, para cada terceira coluna de linha no nome do arquivo, o nó da matriz nomeado seen
é incrementado e a linha impressa se o conteúdo desse nó (coluna3) não foi ( !
) definido anteriormente.
O awk
comando acima funcionará se suas colunas no arquivo de entrada forem delimitadas com space
ou Tab
entre si, se as colunas forem delimitadas com outra coisa, você precisará dizer para ativar a -F
opção. Portanto, por exemplo, se todas as colunas delimitadas com vírgula ( ,
) e quiser remover linhas com base na terceira coluna, use a -F','
opção
awk -F',' '!seen[$3]++' filename
-u
apenas removeria linhas duplicadas , não chaves duplicadas ... mas estou errado.