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
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 ";"
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
Partager