[AWK][Tips] : supprimer les lignes en doublon

Celle-là elle est facile me diront certains mais bon c’est parfois utile de le rappeler. Awk est un outil bien pratique pas toujours plus court que les autres mais tellement facile à pipper.

Comment supprimer les lignes en doublons d’un fichier ? qu’elles soient à la suite ou non d’ailleurs.

Autant qu’en bash si on utilise le binaire sort cela va vite avec cat monfichier | sort -u … mais avec awk on peut se creuser la tête.

Voici donc la solution :

awk '! a[$0]++' fichier.txt 

Donc on créé un tableau (array) avec pour clé $0 soit le contenu de la ligne. Et on affiche le contenu dès lors que la ligne suivante est différente (on incrémente de 1 avec le ++.

En un peu plus long il y avait :

awk '!($0 in a) {a[$0];print}' fichier.txt 

Que dire de plus plus ? pas grand chose car le but est de faire court.

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion /  Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s