Éliminer les doublons dans un fichier
Résolu
poiuytreza01234567890
Messages postés
54
Date d'inscription
Statut
Membre
Dernière intervention
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
J'ai un fichier sous cette forme:
A B
C D
C C
B A
D A
Je veux que j'élimine le cas où $1=$2 (exemple: C C) et si je suis dans le cas (A B)/(B A) je veux qu'il élime une et me laisse l'autre. pour avoir un fichier de sortie comme ça:
A B
C D
D A
Comment en fait ça sous bash?
Merci
J'ai un fichier sous cette forme:
A B
C D
C C
B A
D A
Je veux que j'élimine le cas où $1=$2 (exemple: C C) et si je suis dans le cas (A B)/(B A) je veux qu'il élime une et me laisse l'autre. pour avoir un fichier de sortie comme ça:
A B
C D
D A
Comment en fait ça sous bash?
Merci
A voir également:
- Éliminer les doublons dans un fichier
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier rar - Guide
- Fichier .dat - Guide
3 réponses
hello
$ cat fichier A B C D C C B A D A $ awk '{split($0, a); asort(a); s=a[1] a[2]; if(!t[s]++ && (a[1] != a[2]))print $0}' fichier A B C D D A $
En bash c'est un peu compliqué car tu dois mémoriser toutes les lignes que tu as croisé. Si il n' y a pas de contraintes sur l'ordre dans lequel sorte les lignes c'est déjà plus facile, tu peux boucler sur chaque ligne de sorte à ce que la première lettre précède toujours la seconde dans l'ordre alphabétique), mais je n'ai pas l'impression qu'il y ait d'opérateur -lt ou < pour le texte en bash. Du coup awk est peut être plus adapté pour cette partie.
Ensuite tu rajoutes un | sort | uniq derrière et l'affaire est dans le sac.
Ensuite tu rajoutes un | sort | uniq derrière et l'affaire est dans le sac.
Salut mamie,
mais je n'ai pas l'impression qu'il y ait d'opérateur -lt ou < pour le texte en bash.
Si, depuis bash 4 c'est possibeul ;-))
Extrait du man bash :
mais je n'ai pas l'impression qu'il y ait d'opérateur -lt ou < pour le texte en bash.
Si, depuis bash 4 c'est possibeul ;-))
Extrait du man bash :
Lorsqu'ils sont utilisés avec [[, les opérateurs < et > ordonnent d'un point de vue lexicographique en utilisant les paramètres linguistiques régionaux courants.