Remplacez simplement votre commande awk par la colonne que vous souhaitez effectuer pour supprimer les lignes en double en fonction (dans votre troisième colonne):
awk '!seen[$3]++' filename
Cette commande indique les awk
lignes à imprimer. La variable $3
contient tout le contenu de la colonne 3 et les crochets sont un accès au tableau. Ainsi, pour chaque troisième colonne de ligne dans nom de fichier, le nœud du tableau nommé seen
est incrémenté et la ligne imprimée si le contenu de ce nœud (colonne3) n'était pas ( !
) précédemment défini.
La awk
commande ci- dessus fonctionnera si vos colonnes dans le fichier d'entrée sont délimitées avec space
ou Tab
entre elles-mêmes, si les colonnes délimitées avec autre chose, vous devez lui dire de awk avec son -F
option. Ainsi, par exemple, si toutes les colonnes sont délimitées par une virgule ( ,
) et que vous souhaitez supprimer les lignes en fonction de l' -F','
option d' utilisation de la troisième colonne .
awk -F',' '!seen[$3]++' filename
-u
ne supprimerait que les lignes en double , pas les clés en double ... mais je me trompe.