Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 18/10/2016, à 17:35

karamelo

[Résolu]supprimer doublon et deplacer valeur csv

Bonjour une petite question encore avec les csv maudits , j'ai encore un fichier de ce type:

A,B
201500030713,1
201500030713,3
201500030713,1
201500030713,1
201500030713,1
201500030714,3
201500030714,3
201500030715,3
201500030716,3
201500030716,1
201500030716,1

la valeur 2015000xxx est en double, je souhaite sortir les doubles de la valeur A et déplacer vers B avec comme séparateur -
Exemple de sortie:

A,B
201500030713,1-3-1-1-1,
201500030714,3-3,
201500030715,3,
201500030716,3-1-1,

il y a t'il un moyen avec uniq et sed de le faire ?

Dernière modification par karamelo (Le 19/10/2016, à 07:42)

Hors ligne

#2 Le 18/10/2016, à 19:19

Hizoka

Re : [Résolu]supprimer doublon et deplacer valeur csv

Salut, c'est pas vraiment ce que tu veux mais avec python3 :

dico = {}
with open("FILE", "r") as Contenu:
 for Ligne in Contenu:
  a, b = Ligne.split(",")

  if a in dico.keys():
   dico[a].append(b.strip())
  else:
   dico[a] = [b.strip()]

for a, b in dico.items():
 print("{}, {},".format(a, "-".join(b)))

KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#3 Le 18/10/2016, à 20:19

Compte anonymisé

Re : [Résolu]supprimer doublon et deplacer valeur csv

Je propose ce script avec sed et uniq.

#!/bin/bash
for a in $(sed 's/,.*$//' "$1"|uniq)
   do liste2=$(sed -n '/^'"$a"',/s/^.*,//p' "$1")
   echo $a,$(sed 's/ /-/g' <<< $liste2),
done

usage :

script nomdufichier

#4 Le 19/10/2016, à 01:18

Watael

Re : [Résolu]supprimer doublon et deplacer valeur csv

salut,

à la va-vite en awk :

$ awk 'BEGIN{FS=OFS=","}{if($1 in ar)ar[$1]=ar[$1]"-"$2; else ar[$1]=$2}END{for (i in ar)print i,ar[i]}' tonFichier

as-tu besoin de la virgule finale, car elle indique un dernier champ vide ?

Dernière modification par Watael (Le 19/10/2016, à 01:18)


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#5 Le 19/10/2016, à 07:41

karamelo

Re : [Résolu]supprimer doublon et deplacer valeur csv

Wahooo super doute vos solutions me vont parfaitement, merci à tous.
Solved tongue

Hors ligne