Bonjour à tous,
J’essaie de faire un petit script qui évalue certains champs d'un CSV.
Exemple :
devient
Code : Sélectionner tout - Visualiser dans une fenêtre à part blablabla,blablabla,(47+(34/60)+(54.42/3600)),blablabla,blabla
Code : Sélectionner tout - Visualiser dans une fenêtre à part blablabla,blablabla,47.58178333333333333332,blablabla,blabla
J'ai un premier jet qui fonctionne pas trop mal :
Mon problème est que cela est très,très long ....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 awk -F ',' 'function CALC( F ) {system ("echo \"" $F "\" | bc -l | tr -d \"\\n\"")} { for(i=1 ; i <= 13 ; i++) { printf "%s,",$i } ; CALC( 14 ); for(i=16 ; i <= NF ; i++) { printf "%s", ","$i }; print "\n"}' fichier.csv
A priori avec printf, c'est bien plus rapide, mais impossible de le faire fonctionner...
Le $F contient bien ma chaine mais le retour = 0.000
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 awk -F ',' 'function CALC( F ) {printf "%.3f\n", $F} { for(i=1 ; i <= 13 ; i++) { printf "%s,",$i } ; CALC( 14 ); print "\n"}' fichier.csv
Voilà.
Si l'un de vous a des idées, je suis preneur.
Merci.
Partager