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 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 ? roll

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.

credenhill a écrit :

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

pingouinux a écrit :

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.

Sylvainremi a écrit :

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