Supprimer seulement certains doublon

Résolu/Fermé
drainlife0 Messages postés 5 Date d'inscription lundi 5 octobre 2015 Statut Membre Dernière intervention 15 septembre 2018 - 15 sept. 2018 à 11:54
 Utilisateur anonyme - 15 sept. 2018 à 23:49
Bonjour,


J'aimerais pouvoir supprimer des lignes en double dans un fichier mais uniquement celles repérables par un certains pattern.
Exemple, j'ai un fichier avec :
abc
abc
abc
aze // rty
aze // rty
qsd
qsd
fgh
wxc
...


Donc j'ai des doublons (et plus) mais je souhaite supprimer uniquement une itération des lignes en double possédant //
Les doubles/triples/etc se suivent toujours si ça peut aidé...

Bref, au final je voudrais ça :
abc
abc
abc
aze // rty
qsd
qsd
fgh
wxc
...


Une idée? Merci :D

3 réponses

Utilisateur anonyme
15 sept. 2018 à 13:45
salut,

c'est pas hyper complexe.
quand tu auras construit ton algo, tu peux faire ça en bash, ou en awk...

mais on ne va pas faire l'algo ET le code !
0
drainlife0 Messages postés 5 Date d'inscription lundi 5 octobre 2015 Statut Membre Dernière intervention 15 septembre 2018
Modifié le 15 sept. 2018 à 16:15
De quel algo tu parle? De la regex de selection? De ce qui génère ce fichier? J'ai tout ca en sortie bash mais je sais pas quel traitement lui apporté pour retirer uniquement certains doublon.
Tu fais ça comment avec bash ou la avec awk? awk il lui faut un delimiteur (comme cut), je vois pas comment m'en servir pour faire ce que je veux.
0
drainlife0 Messages postés 5 Date d'inscription lundi 5 octobre 2015 Statut Membre Dernière intervention 15 septembre 2018
15 sept. 2018 à 16:19
C'est bon, je m'en suis sortie bêtement avec un grep + uniq
0
ah bin j'allais le dire :p gg
0
drainlife0 Messages postés 5 Date d'inscription lundi 5 octobre 2015 Statut Membre Dernière intervention 15 septembre 2018 > backnight
15 sept. 2018 à 16:25
Ba en faite non :-(
Car du coup je me retrouve en sortie qu'avec les lignes unique ayant //
J'ai perdu tout le reste...
0
drainlife0 Messages postés 5 Date d'inscription lundi 5 octobre 2015 Statut Membre Dernière intervention 15 septembre 2018
Modifié le 15 sept. 2018 à 17:48
J'ai trouvé avec awk et seen
awk '!/\/\// || /\/\// && seen[$0]++'
0
Utilisateur anonyme
15 sept. 2018 à 23:49
t'as trouvé ça sur quel site ?

tu ne vas pas te faire des amis en t'attribuant ce que tu copies !
demande à Koa Tao.

histoire de ne laisser aucune ambiguïté :
seen
n'est pas un programme, c'est un tableau avec un nom arbitraire.
0