Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/02/2011, 12h01   #1
 
Inscription : février 2008
Messages : 49
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 49
Points : -4
Points : -4
Par défaut copier des colonnes dans un fichier excel

Bonjour je suis debutant je veux copier une colonne d'un fichier texte chaque heure dans un fichier excel avec l'utilisation de awk .
Merci d'avance pour votre aide
nizar24 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2011, 14h01   #2
Expert Confirmé Sénior
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 2 070
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 2 070
Points : 4 146
Points : 4 146
Bonjour,

c'est un peu court.

quel est le format du contenu du fichier "texte" ? quel est le format du contenu du fichier "excel", avant et après avoir utilisé awk ?

Qu'as-tu déjà essayé ?
N_BaH est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2011, 14h11   #3
 
Inscription : février 2008
Messages : 49
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 49
Points : -4
Points : -4
Citation:
Envoyé par N_BaH Voir le message
Bonjour,

c'est un peu court.

quel est le format du contenu du fichier "texte" ? quel est le format du contenu du fichier "excel", avant et après avoir utilisé awk ?

Qu'as-tu déjà essayé ?
Le fichier texte se compose d'une seule colonne numérique qui change chaque heure et chaque colonne doit etre copié dans une colonne du fichier excel pour avoir plusieurs colonnes saisies dans le fichier excel
nizar24 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2011, 14h28   #4
Expert Confirmé Sénior
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 2 070
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 2 070
Points : 4 146
Points : 4 146
awk est une contrainte ? sinon il y a paste :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
$ cat fichier.excel
123;456;789
456;789;123
789;123;456
$ cat fichier.txt 
123
456
789
$ echo "$(paste -d';' fichier.excel fichier.txt)" >fichier.excel
$ cat fichier.excel
123;456;789;123
456;789;123;456
789;123;456;789
N_BaH est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2011, 14h48   #5
 
Inscription : février 2008
Messages : 49
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 49
Points : -4
Points : -4
Citation:
Envoyé par N_BaH Voir le message
awk est une contrainte ? sinon il y a paste :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
$ cat fichier.excel
123;456;789
456;789;123
789;123;456
$ cat fichier.txt 
123
456
789
$ echo "$(paste -d';' fichier.excel fichier.txt)" >fichier.excel
$ cat fichier.excel
123;456;789;123
456;789;123;456
789;123;456;789
merci bien mais je veux que chaque colonne du fichier excel prend une colonne des variables exemple
colonne A colonne B colonne C
123 456 789
456 789 123
789 123 456
et aprés execution du script on obtient
colonne A colonne B colonne C colonne D
123 456 789 123
456 789 123 456
789 123 456 789
nizar24 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2011, 18h19   #6
Expert Confirmé Sénior
 
Avatar de frp31
 
Homme francois
Ingénieur systèmes et réseaux
Inscription : juillet 2006
Messages : 3 534
Détails du profil
Informations personnelles :
Nom : Homme francois
Âge : 35
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : juillet 2006
Messages : 3 534
Points : 7 743
Points : 7 743
alors il suffit de faire comme indiqué sans conserver le séparateur ";"
frp31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2011, 11h15   #7
 
Inscription : février 2008
Messages : 49
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 49
Points : -4
Points : -4
Citation:
Envoyé par frp31 Voir le message
alors il suffit de faire comme indiqué sans conserver le séparateur ";"
Bonjour voila un exemple réel pour remplir le tableau tester.xls à partir du fichier test.txt
et Merci beaucoup pour votre aide
Fichiers attachés
Type de fichier : xls tester.xls (2,1 Ko, 5 affichages)
Type de fichier : txt test.txt (89 octets, 6 affichages)
nizar24 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2011, 14h03   #8
Expert Confirmé Sénior
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 2 070
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 2 070
Points : 4 146
Points : 4 146
mais quel est ton problème ? tu ne trouves pas le manuel de awk pour en tester un bout de code ?
quelques indices : getline, et l'option -v
N_BaH est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2011, 14h28   #9
 
Inscription : février 2008
Messages : 49
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 49
Points : -4
Points : -4
Citation:
Envoyé par N_BaH Voir le message
mais quel est ton problème ? tu ne trouves pas le manuel de awk pour en tester un bout de code ?
quelques indices : getline, et l'option -v
Désolé mais je n'ai pas pu utiliser getline() et je ne sais pas comment elle fonctionne je veux un peu d'aide pour avancer
nizar24 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2011, 14h45   #10
Expert Confirmé Sénior
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 2 070
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 2 070
Points : 4 146
Points : 4 146
voilà comment je fais :
Code :
awk -vDate=$(date +'%m/%d/%Y') -vnewData=test.txt '(NF > 1){ if(FNR >= 1){line = $0"\t"Date}else{line = $0; getline <newData; line = line"\t"$0} };(line){print line}' tester.xls
ce n'est probablement pas optimisé : je ne me sers pas assez souvent de awk, mais ça a l'air de fonctionner
edit: err, non ça ne fonctionne pas; je cherche encore...

mais franchement : tout sur GNU awk !
N_BaH est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 08/02/2011, 15h30   #11
Expert Confirmé Sénior
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 2 070
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 2 070
Points : 4 146
Points : 4 146
ah !
Code :
 awk '(NF > 1){ if(n){line = $0; getline <newData; line = line"\t"$0}else{line = $0"\t"Date; n++} };(line){print line}' Date=$(date +'%m/%d/%Y') newData="test.txt" tester.xls
non, mais
N_BaH est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 08/02/2011, 16h14   #12
 
Inscription : février 2008
Messages : 49
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 49
Points : -4
Points : -4
Citation:
Envoyé par N_BaH Voir le message
ah !
Code :
 awk '(NF > 1){ if(n){line = $0; getline <newData; line = line"\t"$0}else{line = $0"\t"Date; n++} };(line){print line}' Date=$(date +'%m/%d/%Y') newData="test.txt" tester.xls
non, mais
Merci bien mais ce code ne peut pas faire l'incrémentation des colonnes selon la date chaque jour il remplace la date du jour précédent dans la mème colonne
nizar24 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2011, 16h32   #13
Expert Confirmé Sénior
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 2 070
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 2 070
Points : 4 146
Points : 4 146
qu'appelles-tu incrémentation ?
N_BaH est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2011, 16h39   #14
 
Inscription : février 2008
Messages : 49
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 49
Points : -4
Points : -4
Citation:
Envoyé par N_BaH Voir le message
qu'appelles-tu incrémentation ?
L'incrémentation: Augmentation de la valeur d'une variable à chaque phase de l'exécution d'un programme.
Et pour ce code il ne peut pas faire le passage des colonnes automatiquement selon la date chaque jour, il remplace la date du jour précédent dans la mème colonne
nizar24 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2011, 18h16   #15
Expert Confirmé Sénior
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 2 070
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 2 070
Points : 4 146
Points : 4 146
je crois que je commence à comprendre : les données du fichier.txt doivent aller sous la date à laquelle a été créé ce fichier. c'est ça ?

est-ce que tu peux exporter le fichier.xls au format csv ? parce que le format donné n'est pas hyper pratique
N_BaH est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2011, 20h30   #16
 
Inscription : février 2008
Messages : 49
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 49
Points : -4
Points : -4
Citation:
Envoyé par N_BaH Voir le message
je crois que je commence à comprendre : les données du fichier.txt doivent aller sous la date à laquelle a été créé ce fichier. c'est ça ?

est-ce que tu peux exporter le fichier.xls au format csv ? parce que le format donné n'est pas hyper pratique
OK je vais l'exporter au format csv
nizar24 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2011, 22h30   #17
 
Inscription : février 2008
Messages : 49
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 49
Points : -4
Points : -4
Citation:
Envoyé par nizar24 Voir le message
OK je vais l'exporter au format csv
voila le fichier au format csv
Fichiers attachés
Type de fichier : zip tester.zip (2,0 Ko, 3 affichages)
nizar24 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2011, 12h50   #18
Expert Confirmé Sénior
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 2 070
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 2 070
Points : 4 146
Points : 4 146
ah ! oui, c'est mieux, et surtout plus complet !

voilà ce que j'ai fait en awk :
Code pseudo-code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# avant de lire un fichier, protection des contre-obliques de la date
#
# recherche de la ligne sur laquelle est la date
# énumaration des champs
   # si la date ne coincide pas
   # incrémentation d'une variable n
# autrement
   #affection d'une variable N = n+1
# affichage de la igne
# passage à la ligne suivante
#
# si N existe
   # affichage des champs < N 
   # concaténation des champs > N dans une variable
   # récupération d'une ligne du deuxième fichier
   # affichage de la ligne du deuxième fichier et de la variable concaténée
   # affichage saut de ligne
   # purge de la variable concaténée
# autrement
   #affichage de la ligne
par contre, une fois le fichier 'resultat' affiché dans OOoCalc, les pourcentages de la colonne mise à jour sont alignés à gauche...?
N_BaH est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2011, 12h59   #19
 
Inscription : février 2008
Messages : 49
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 49
Points : -4
Points : -4
Citation:
Envoyé par N_BaH Voir le message
ah ! oui, c'est mieux, et surtout plus complet !

voilà ce que j'ai fait en awk :
Code pseudo-code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# avant de lire un fichier, protection des contre-obliques de la date
#
# recherche de la ligne sur laquelle est la date
# énumaration des champs
   # si la date ne coincide pas
   # incrémentation d'une variable n
# autrement
   #affection d'une variable N = n+1
# affichage de la igne
# passage à la ligne suivante
#
# si N existe
   # affichage des champs < N 
   # concaténation des champs > N dans une variable
   # récupération d'une ligne du deuxième fichier
   # affichage de la ligne du deuxième fichier et de la variable concaténée
   # affichage saut de ligne
   # purge de la variable concaténée
# autrement
   #affichage de la ligne
par contre, une fois le fichier 'resultat' affiché dans OOoCalc, les pourcentages de la colonne mise à jour sont alignés à gauche...?
Bonjour les pourcentages sont centrées
nizar24 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2011, 13h45   #20
Expert Confirmé Sénior
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 2 070
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 2 070
Points : 4 146
Points : 4 146
ah ? moi, j'ai tout à droite, sauf les pourcentages de la colonne mise à jour...?

mais là, je ne pourrai pas aider, j'utilise OOoCalc, une fois tous les pfff.......jamais
N_BaH est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h57.


 
 
 
 
Partenaires

Hébergement Web