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

Print Friendly, PDF & Email

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.

Découvrez  Top commandes linux #6 : bash framework, ffmpeg, column, Vim, PL/SQL