Restez uniques
Maintenant sur http://linux-attitude.fr/post/Restez-uniques
Niveau:

Résumé: comm -1 -2 ; diff -y
Supposons que vous ayez 2 listes. Par exemple la liste des courses et la liste des produits achetés. Il vous est possible de récupérer la liste des éléments communs grâce à la méthode suivante :
Toujours en utilisant comm, vous pouvez obtenir les éléments présents dans la liste 1 et pas dans la liste 2. Il vous faut alors utiliser les options "-2 -3".
Sans options comm affiche les données sur 3 colonnes :
Ceci permet de comparer les fichiers en affichant sur la première colonne les données uniques au fichier 1, sur la 2e les données uniques au fichier 2 et sur la 3e les données communes.
Notez que pour une comparaison visuelle des 2 fichiers (mais plus difficilement scriptable cette fois), la commande diff est plus adaptée :
On a alors les 2 fichiers affichés sur 2 colonnes et un petit caractère > ou < indique si la ligne n'apparaît que sur un des 2 fichiers.
Niveau:
Résumé: comm -1 -2 ; diff -y
Supposons que vous ayez 2 listes. Par exemple la liste des courses et la liste des produits achetés. Il vous est possible de récupérer la liste des éléments communs grâce à la méthode suivante :
$ sort liste1 > liste1.tmp
$ sort liste2 > liste2.tmp
$ comm -1 -2 liste1.tmp liste2.tmp
$ sort liste2 > liste2.tmp
$ comm -1 -2 liste1.tmp liste2.tmp
- on fait un sort car comm ne fonctionne que sur des fichiers dont les lignes sont ordonnées de la même façon
- -1 et -2 indiquent de ne pas garder les lignes uniques au fichier 1 ou au fichier 2
$ sort liste1 | uniq > liste1.tmp
$ sort liste2 | uniq > liste2.tmp
$ sort liste2 | uniq > liste2.tmp
Toujours en utilisant comm, vous pouvez obtenir les éléments présents dans la liste 1 et pas dans la liste 2. Il vous faut alors utiliser les options "-2 -3".
Sans options comm affiche les données sur 3 colonnes :
$ comm liste1.tmp liste2.tmp
Ceci permet de comparer les fichiers en affichant sur la première colonne les données uniques au fichier 1, sur la 2e les données uniques au fichier 2 et sur la 3e les données communes.
Notez que pour une comparaison visuelle des 2 fichiers (mais plus difficilement scriptable cette fois), la commande diff est plus adaptée :
$ diff -y liste1.tmp liste2.tmp
On a alors les 2 fichiers affichés sur 2 colonnes et un petit caractère > ou < indique si la ligne n'apparaît que sur un des 2 fichiers.
Publicité