- Accueil
- » Forum
- » Terminal, scripts et ligne de commande
- » [Résolu] zsh commande printf 4 chiffre après la virgule
Pages : 1
Discussion fermée
#1 Le 06/07/2012, à 13:48
- jbbaudouin
[Résolu] zsh commande printf 4 chiffre après la virgule
Bonjour à tous,
je chercher à afficher un chiffre avec 4 chiffres après la virgule
grâce à la commande printf.
pour l'instant je cherche l'instruction du style : printf "%.4F" mais cela ne me renvoi pas
le valeur désirée.
Auriez-vous des suggestions?
Je vous remercie par avance pour réponses,
jbbaudouin
Dernière modification par jbbaudouin (Le 06/07/2012, à 15:59)
Hors ligne
#2 Le 06/07/2012, à 13:59
- jbbaudouin
Re : [Résolu] zsh commande printf 4 chiffre après la virgule
Ok je crois que je viens de trouvé, quelquechose du genre %5.4f.
Mais maintenant je bloque sur la concaténation de ces différentes variables en colonnes.
par exemple il me les affiche à suivre : v1, v2, v3...
et je les voudrais du genre : v1
v2
v3...
si vous avez des suggestions je suis preneur.
j'essaie avec cat mais pour l'instant ça coince
jbbaudouin
Hors ligne
#3 Le 06/07/2012, à 13:59
- pingouinux
Re : [Résolu] zsh commande printf 4 chiffre après la virgule
Bonjour,
$ printf "%7.4f\n" 5.2
5.2000
$ printf "%7.4f\n" 5.2 3.8 2.7
5.2000
3.8000
2.7000
Dernière modification par pingouinux (Le 06/07/2012, à 14:04)
Hors ligne
#4 Le 06/07/2012, à 14:08
- jbbaudouin
Re : [Résolu] zsh commande printf 4 chiffre après la virgule
merci pour ta réponse pingouinux
ok affichage en ligne grâce au \n.
est-ce que éventuellement tu serait comment ajouter la nouvelle colonne comme colonne supplémentaire
dans un fichier préexistant où il y a déjà des colonnes?
jbaudouin
Hors ligne
#5 Le 06/07/2012, à 14:13
- pingouinux
Re : [Résolu] zsh commande printf 4 chiffre après la virgule
$ printf "%7.4f\n" 5.2 3.8 2.7 >out
$ paste out <(printf "%7.4f\n" 15.2 13.8 12.7 )
5.2000 15.2000
3.8000 13.8000
2.7000 12.7000
Hors ligne
#6 Le 06/07/2012, à 14:23
- jbbaudouin
Re : [Résolu] zsh commande printf 4 chiffre après la virgule
je pense que ça sera plus facile si je montre le prg en question:
#!/bin/zsh
c=3.4
b=1.0005
for (( i=1 ; i<=201 ; i=i+1))
do
c=$(($c*$b))
printf "%5.4f\n" c > test_concat.a0
paste test_concat.a0 < printf "%5.4f\n" c
done
exit
qui ne fonctionne d'ailleurs pas pour l'instant
jbbaudouin
Hors ligne
#7 Le 06/07/2012, à 14:48
- pingouinux
Re : [Résolu] zsh commande printf 4 chiffre après la virgule
Peux-tu montrer les premières lignes du fichier que tu souhaites obtenir. Je ne connais pas zsh.
Hors ligne
#8 Le 06/07/2012, à 15:07
- jbbaudouin
Re : [Résolu] zsh commande printf 4 chiffre après la virgule
OK voici les premières ligne de l'ancien fichier (nbr de colonne = 4) :
val1 val2 val2
val4 val5 val6
...
et voici le nouveau fichier que j'aimerai avoir :
newval1 val1 val2 val3
newval2 val4 val5 val6
..
donc je voudrais rajouter la colonne newval (commande
printf "%5.4f\n" c
dans mon prg), dans le fichier ou il y a les colonnes val.
en espérant que cela soit clair.
jbbaudouin
Hors ligne
#9 Le 06/07/2012, à 15:22
- pingouinux
Re : [Résolu] zsh commande printf 4 chiffre après la virgule
en espérant que cela soit clair
Pas vraiment…
OK voici les premières ligne de l'ancien fichier (nbr de colonne = 4) :
val1 val2 val2
Je ne vois que 3 colonnes
Est-ce bien cela que tu veux faire ?
Tu pars d'un fichier qui comprend 3 colonnes et 201 lignes
Tu calcules 201 valeurs avec ton programme, et tu insères les valeurs obtenues devant la première colonne du fichier initial, qui en aura alors 4
Hors ligne
#10 Le 06/07/2012, à 15:24
- jbbaudouin
Re : [Résolu] zsh commande printf 4 chiffre après la virgule
oui c'est tout à fais cela
jbbaudouin
Hors ligne
#11 Le 06/07/2012, à 15:31
- pingouinux
Re : [Résolu] zsh commande printf 4 chiffre après la virgule
Voici un test, en bash, avec 11 lignes :
$ cat fic_init
col1A col2A col3A
col1B col2B col3B
col1C col2C col3C
col1D col2D col3D
col1E col2E col3E
col1F col2F col3F
col1G col2G col3G
col1H col2H col3H
col1I col2I col3I
col1J col2J col3J
col1K col2K col3K
$ cat x0.sh
#!/bin/bash
c=3.4
b=1.0005
paste <(
for (( i=1 ; i<=11 ; i=i+1))
do
c=$(bc -l <<<"$c*$b")
printf "%5.4f\n" $c
done) fic_init
$ ./x0.sh
3.4017 col1A col2A col3A
3.4034 col1B col2B col3B
3.4051 col1C col2C col3C
3.4068 col1D col2D col3D
3.4085 col1E col2E col3E
3.4102 col1F col2F col3F
3.4119 col1G col2G col3G
3.4136 col1H col2H col3H
3.4153 col1I col2I col3I
3.4170 col1J col2J col3J
3.4187 col1K col2K col3K
Hors ligne
#12 Le 06/07/2012, à 15:48
- jbbaudouin
Re : [Résolu] zsh commande printf 4 chiffre après la virgule
ok ça fonctionne, seulement que dans mon cas il me sort des nombres à virgules et pas à point lorsque
je calcul c, du coup ça bloque pour la suite.
jbbbaudouin
Hors ligne
#13 Le 06/07/2012, à 15:59
- pingouinux
Re : [Résolu] zsh commande printf 4 chiffre après la virgule
À quel niveau cela coince-t-il ? Est-ce dans bc, ou dans printf ?
Essaye ces 2 commandes :
bc -l <<<"2.5*1.1"
printf "%5.4f\n" 3.5
et envoie le résultat (avec les messages d'erreur éventuels).
Hors ligne
#14 Le 06/07/2012, à 15:59
- jbbaudouin
Re : [Résolu] zsh commande printf 4 chiffre après la virgule
bon je vais passer cette discussion en résolu et en lancer une autre sur le changement virgule par point
lorsque l'on calcul en zsh des réels.
En tout merci encore Pingouinux pour ton prg,
jbbaudouin
Hors ligne
#15 Le 06/07/2012, à 17:28
- nesthib
Re : [Résolu] zsh commande printf 4 chiffre après la virgule
GUL Bordeaux : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne
Pages : 1
Discussion fermée