#1 Le 17/04/2009, à 13:37
- J-dub
Dedoublonner un fichier en fonction de certaines colonnes
Bonjour,
Je cherche une commande permettant de dédoublonner des lignes d’un fichier en fonction de certaines colonnes, j'ai cherché dans le man uniq mais je ne pense pas que c'est possible. Il faudrait que je commence à apprendre awk...
Par exemple pour ce fichier :
nom_projet1|nom_job1|nom_lien1|46523|nom_col1|1|2|lien_entree1
nom_projet1|nom_job1|nom_lien2|46524|nom_col2|1|2|lien_entree2
nom_projet1|nom_job1|nom_lien2|46524|nom_col2|2|8|lien_entree2
nom_projet1|nom_job1|nom_lien3|46525|nom_col3|1|2|lien_entree3
Je souhaiterai dédoublonner en fonction des 4 premières colonnes sans tenir compte du reste, en faite même juste en tenant compte de la 4ème colonne (id) cela devrait fonctionner, je souhaiterai prendre uniquement la 1ère ligne trouvée en cas de doublon sur la 4ème colonne, avec cette exemple je souhaiterai obtenir :
nom_projet1|nom_job1|nom_lien1|46523|nom_col1|1|2|lien_entree1
nom_projet1|nom_job1|nom_lien2|46524|nom_col2|1|2|lien_entree2
nom_projet1|nom_job1|nom_lien3|46525|nom_col3|1|2|lien_entree3
Une idée de comment faire?
#2 Le 17/04/2009, à 14:14
- Alain.g
Re : Dedoublonner un fichier en fonction de certaines colonnes
Tu n'as apparemment pas lu ma réponse à un autre de tes sujets :
http://forum.ubuntu-fr.org/viewtopic.php?pid=2563794#p2563794
Car c'est la même solution...
awk -F'|' '!a[$4]++' fichier
Si tu ne la comprends pas, regarde le numéro 43 sur cette page :
http://www.catonmat.net/blog/awk-one-liners-explained-part-two/
Dernière modification par Alain.g (Le 17/04/2009, à 14:15)
Xubuntu Karmic !
Hors ligne
#3 Le 17/04/2009, à 14:20
- Totor
Re : Dedoublonner un fichier en fonction de certaines colonnes
Bonjour,
en tenant compte des 4ères colonnes :
cut -d'|' -f1-4 <nomFichier>' | xargs -l1 -I{} grep -m1 "^{}" <nomFichier >
En tenant compte que de la 4ème colonne :
cut -d'|' -f4 <nomFichier>|uniq|xargs -l1 -i{} grep -m1 '^\([^|]\+|\)\{3\}{}|' <nomFichier>
EDIT : Alain a posté entre temps (qui est toute simple une fois comprise !)... désolé
Dernière modification par Totor (Le 17/04/2009, à 14:24)
-- Lucid Lynx --
Hors ligne
#4 Le 17/04/2009, à 18:35
- J-dub
Re : Dedoublonner un fichier en fonction de certaines colonnes
Merci à vous deux ça fonctionne très bien!
Merci pour le lien Alain et pour ta réponse sur mon autre post que je n'avais pas vu effectivement.