Trier lignes en doublon dans un fichier. [Résolu/Fermé]

Messages postés
558
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
19 juin 2019
-
Bonjour,

Je souhaiterais pourvoir trier les lignes en doublon dans un fichier. Le trie doit se faire sur les champs 1,4,5 et 6 en excluant les champ 2 et 3. Le séparateur de champ est le pipe "|"

Dans cet exemple je souhaiterais conserver qu'une seule des lignes sans tenir compte du champ 2 et 3.

o.toto@mail.com|1111073|2012-11-12 15:38:08|0006TH|Zut|TOTO 
o.toto@mail.com|1111685|2012-11-12 19:12:02|0006TH|Zut|TOTO 


Je ne vois rien dans les man de SORT et UNIQ ui me permette cela.

Avez vous une idée?

Merci



L'accès au savoir est la première liberté que chaque homme devrait avoir.
Afficher la suite 

4 réponses

Messages postés
17779
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
23 juillet 2019
4392
0
Merci
hello
$ cat a1
o.toto@mail.com|1111073|2012-11-12 15:38:08|0006TH|Zut|TOTO 
o.toto@mail.com|1111685|2012-11-12 19:12:02|0006TH|Zut|TOTO 
$ 
$ awk -F '|' '! x[$1, $4, $5, $6]++ ' a1
o.toto@mail.com|1111073|2012-11-12 15:38:08|0006TH|Zut|TOTO 
$ 
Messages postés
558
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
19 juin 2019
16
0
Merci
Merci énormément dubceck .

Si je peux abuser de votre temps, pourriez vous m'expliquer votre commande car j'aimerais comprendre surtout le
 '! x[$1, $4, $5, $6]++ '


Merci encore
Messages postés
17779
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
23 juillet 2019
4392
0
Merci
On incremente (++) un tableau x indexé par les champs 1,4,5 et 6 du fichier.
si cette location est nulle (d'où le !) on imprime la ligne (en absence de code entre {}, l'action par défaut est print $0)
donc si x[$1, $4, $5, $6] n'est pas nul, il y a deja eu une ligne identique et on ne l'imprime pas.
Messages postés
558
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
19 juin 2019
16
0
Merci
Merci c'est clair.

Bonne soirée.