[shell] afficher doublons

Résolu/Fermé
rumix Messages postés 66 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 12 juillet 2010 - 14 avril 2008 à 14:11
 maes - 23 avril 2009 à 00:54
Bonjour,

j'ai besoin d'afficher toutes les lignes d'un fichier qui on un certain champ en commun, en Korn Shell

par exemple le fichier contient :

nom1 aaa
nom2 bbb
nom2 aaa
nom3 aaa
nom4 ccc
nom5 bbb

il faut afficher :

nom1 aaa
nom2 aaa
nom3 aaa
nom2 bbb
nom5 bbb

j'ai essayer en utilisant les commandes sort, et uniq mais en vain
A voir également:

2 réponses

jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
14 avril 2008 à 14:41
Salut,

Avec une moulinette du genre, ça passe :
$ cat rumix 
nom1 aaa
nom2 bbb
nom2 aaa
nom3 aaa
nom4 ccc
nom5 bbb
$ grep -v "$(sort -k 2 rumix | uniq -1 -u)" rumix | sort -k 2
nom1 aaa
nom2 aaa
nom3 aaa
nom2 bbb
nom5 bbb
$
;-))
0
rumix Messages postés 66 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 12 juillet 2010 9
14 avril 2008 à 15:01
merci beaucoup ca passe avec mon exemple, je vais verifier si ca passe sur le fichier réel
0
salut, j'arrive avec du retard mais cela pourra servir a d'autre personne

SYNOPSYS

comm [-123] [--help] [--version] fichier1 fichier2


Exemple 1
- comparer 2 fichiers en supprimant les lignes uniques de chaque fichier (avec la commande cat, je vais d'abord afficher le contenu de chaque fichier, puis utiliser la commande comm pour affficher le résultat de la comparaison)

lami20j@debian:~$ cat fichier1
a
c
lami20j@debian:~$ cat fichier2
a
b
lami20j@debian:~$ comm -12 fichier1 fichier2
a
lami20j@debserv:~$




Exemple 2
- comparer les 2 fichiers en supprimant les lignes communes de ces fichiers

lami20j@debian:~$ comm -3 fichier1 fichier2
b
c
lami20j@debian:~$
0