#1 Le 28/01/2015, à 12:50
- Sylvainremi
[Resolu]exporter données d'une ligne selon valeur dans colonne.
Bonjour à tous-tes, et désolé pour ce titre que j'ai du abrégé, du fait du nombre de caractère maximal dans le titre,
le script que j'aimerai faire doit porter uniquement sur la première colonne: a chaque fois qu'il rencontre une nouvelle donnée la ligne de celle-ci est enregistrée dans un fichier.
ex fichier de base:
x1 x2 x3
a 1 1
b 1 1
a 2 2
c 1 1
b 3 3
on rencontre trois différentes variables,les lignes liées a ces variables doivent donc être exporté dans un fichier:
Fichier a contient toutes les lignes commençant par a, exemple du contenu du fichier: a 1 1
Fichier b contient toutes les lignes commençant par b exemple du contenu du fichier: b 1 1
Fichier c contient toutes les lignes commençant par c exemple du contenu du fichier : c 1 1
Je ne sais pas qu'elle commande,awk cut sed ?
Un petit coup de main ?
Merci d'avance
Dernière modification par Sylvainremi (Le 29/01/2015, à 12:40)
Hors ligne
#2 Le 28/01/2015, à 13:26
- credenhill
Re : [Resolu]exporter données d'une ligne selon valeur dans colonne.
hello
et que faire des lignes a 2 2 , b 3 3 etc ?
En ligne
#3 Le 28/01/2015, à 14:35
- pingouinux
Re : [Resolu]exporter données d'une ligne selon valeur dans colonne.
Bonjour,
Essaye ceci (si tu veux sauter la 1ère ligne)
awk 'NR>1{print >$1}' fichier_de_base
Hors ligne
#4 Le 28/01/2015, à 15:12
- Sylvainremi
Re : [Resolu]exporter données d'une ligne selon valeur dans colonne.
hello
et que faire des lignes a 2 2 , b 3 3 etc ?
que ces lignes soit ajoutées au fichier a b ou c selon la lettre de leur première colonne:
on regarde la colonne 1 on compte le nombre de fois ou il y a un caractère différent, ici a,b et c
toutes les lignes commençant par a sont ajouté dans le fichier a , même chose pour b et c
Bonjour,
Essaye ceci (si tu veux sauter la 1ère ligne)awk 'NR>1{print >$1}' fichier_de_base
t'es un génie merci ! c'est exactement ce que je voulais, merci beaucoup
Hors ligne
#5 Le 28/01/2015, à 16:07
- Sylvainremi
Re : [Resolu]exporter données d'une ligne selon valeur dans colonne.
@pingouinux
Pourrais tu me dire comment rajouter la première lignes au début de chaque fichier ?
Donc la ce que tu as fait c'est appliquer un print à chaque fois que l'on trouve une nouvelle valeur et tu appelles ce fichier par le nom de cette valeur ne concernant que les lignes supérieurs a la première (NR>1)
Hors ligne
#6 Le 28/01/2015, à 16:19
- pingouinux
Re : [Resolu]exporter données d'une ligne selon valeur dans colonne.
Pourrais tu me dire comment rajouter la première lignes au début de chaque fichier ?
C'est un peu plus compliqué
awk '{if(NR==1){lig1=$0}else{if(!_[$1]){print lig1 >$1;_[$1]=1}print >$1}}' fichier_de_base
Ajouté : Ou bien
awk 'BEGIN{getline;lig1=$0}{if(!_[$1]){print lig1 >$1;_[$1]=1}print >$1}' fichier_de_base
Dernière modification par pingouinux (Le 28/01/2015, à 16:26)
Hors ligne
#7 Le 29/01/2015, à 11:24
- Sylvainremi
Re : [Resolu]exporter données d'une ligne selon valeur dans colonne.
Je classe donc en résolu merci encore a toi pingouinux, sa fait deux fois que tu me proposes tes codes qui répondent exactement a mes besoin j’espère que avec l’expérience je pourrais aider a mon tour.
@+
Hors ligne