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
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
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é ?
awk est une contrainte ? sinon il y a paste :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
alors il suffit de faire comme indiqué sans conserver le séparateur ";"
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
voilà comment je fais :ce n'est probablement pas optimisé : je ne me sers pas assez souvent de awk, mais ça a l'air de fonctionner
Code : Sélectionner tout - Visualiser dans une fenêtre à part 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
edit: err, non ça ne fonctionne pas; je cherche encore...
mais franchement : tout sur GNU awk !
ah !non, mais
Code : Sélectionner tout - Visualiser dans une fenêtre à part 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
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
ah ! oui, c'est mieux, et surtout plus complet !
voilà ce que j'ai fait en awk :par contre, une fois le fichier 'resultat' affiché dans OOoCalc, les pourcentages de la colonne mise à jour sont alignés à gauche...?
Code pseudo-code : Sélectionner tout - Visualiser dans une fenêtre à part
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
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
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager