#1 Le 14/10/2016, à 08:55
- karamelo
[Résolu] manipulation fichier csv
Bonjour, petite question sur la manipulation de fichier csv.
J'ai 4 fichiers au format csv.
Dans le fichier 1 j'ai fait un premier tri passant de 132000 lignes à 4300.
La forme du fichier 1:
201500000062,0,1,0,0,2,8,1,B02
201500000092,0,1,0,0,2,3,13,B02
201500000093,0,1,0,0,2,1,0,B02
201500000097,0,1,0,0,2,8,1,B02
201500000102,0,1,0,0,2,4,2,B02
201500000110,0,1,0,0,0,8,2,B02
201500000120,1,1,0,0,1,0,0,A01
201500000190,0,1,0,0,0,4,0,B02
201500000209,0,1,0,0,2,1,1,B02
201500000218,0,1,0,0,2,1,17,B02
201500000246,0,1,0,1,0,1,1,A01
201500000248,0,1,0,0,2,8,17,B02
201500000259,0,1,0,0,2,4,1,B02
201500000263,0,1,0,0,2,1,1,B02
201500000303,0,1,0,0,2,1,19,B02
............................
Je souhaite récupérer la valeur de la colonne 1 (avec les lignes ) dans les autres fichiers et effacer les autres qui ne correspondent pas.
Une idée?
J'ai bien tenté avec sed mais bon s'apparente plus à un carnage.
Merci
Dernière modification par karamelo (Le 14/10/2016, à 10:20)
Hors ligne
#2 Le 14/10/2016, à 09:08
- pingouinux
Re : [Résolu] manipulation fichier csv
Bonjour,
Peux-tu donner un petit exemple ?
Hors ligne
#3 Le 14/10/2016, à 09:18
- karamelo
Re : [Résolu] manipulation fichier csv
Bonjour oui c'est pas très limpide
Fichier qui servira de base
201500000062,0,1,0,0,2,8,1,B02
201500000092,0,1,0,0,2,3,13,B02
201500000093,0,1,0,0,2,1,0,B02
201500000097,0,1,0,0,2,8,1,B02
201500000102,0,1,0,0,2,4,2,B02
201500000110,0,1,0,0,0,8,2,B02
201500000120,1,1,0,0,1,0,0,A01
201500000190,0,1,0,0,0,4,0,B02
201500000209,0,1,0,0,2,1,1,B02
201500000218,0,1,0,0,2,1,17,B02
201500000246,0,1,0,1,0,1,1,A01
201500000248,0,1,0,0,2,8,17,B02
201500000259,0,1,0,0,2,4,1,B02
Les autres ressemblent à ça :
201500000001,1,1,3,1,5,21,0,0,0,1986,A01
201500000001,1,1,1,1,5,11,0,0,0,1953,B02
201500000002,1,1,3,1,5,21,0,0,0,1999,A01
201500000002,1,1,1,2,5,11,0,0,0,1965,B02
201500000003,1,1,3,1,0,21,0,0,0,1998,B02
201500000003,1,1,1,1,1,11,0,0,0,1986,A01
201500000004,1,1,1,1,0,11,0,0,0,1980,A01
201500000004,1,1,3,1,0,21,0,0,0,1994,B02
201500000005,1,1,1,1,0,11,0,0,0,1953,A01
.......................
201500000092,1,1,1,1,1,11,0,0,0,1992,A01
................
Par exemple je cherche à isolé la valeur 201500000092 (et accessoirement les autres) dans les 3 autres fichiers et virer les valeurs des autres fichier qui ne corresponde pas au valeur du fichier 1 colonne 1.
Je doute que ce soit plus clair ....
Dernière modification par karamelo (Le 14/10/2016, à 09:19)
Hors ligne
#4 Le 14/10/2016, à 09:24
- pires57
Re : [Résolu] manipulation fichier csv
Salut,
Montre ton fichier source (déjà fait) et le résultat que tu souhaite obtenir.
ce sera bien plus simple.
Utilisateur d'Archlinux, Ubuntu et Kali Linux
Administrateur système et réseau spécialisé Linux.
LinkedIn
Hors ligne
#5 Le 14/10/2016, à 09:29
- pingouinux
Re : [Résolu] manipulation fichier csv
Tu ne touches pas au fichier 1, et tu vires dans les fichiers 2, 3, et 4 les lignes dont le premier champ ne figure pas dans le fichier 1.
Ai-je bien compris ?
Ajouté : Si oui
cut -d, -f1 fichier_1 | sed 's/^/^/;s/$/,/' > colonne_1
grep fichier_2 -f colonne_1 >fichier_2_modifie
grep fichier_3 -f colonne_1 >fichier_3_modifie
grep fichier_4 -f colonne_1 >fichier_4_modifie
Dernière modification par pingouinux (Le 14/10/2016, à 09:51)
Hors ligne
#6 Le 14/10/2016, à 10:20
- karamelo
Re : [Résolu] manipulation fichier csv
Magique, simple et efficace merci @pingouinux
Hors ligne