[shell] afficher doublons

Résolu
rumix Messages postés 66 Date d'inscription   Statut Membre Dernière intervention   -  
 maes -
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   Statut Modérateur Dernière intervention   4 896
 
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   Statut Membre Dernière intervention   9
 
merci beaucoup ca passe avec mon exemple, je vais verifier si ca passe sur le fichier réel
0
maes
 
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