Bonjour,
Je récupère des données provenant de plusieurs fichiers ayant tous la même forme :
toto-1.6-1.6.out toto-1.6-1.7.out .......toto-2.5-2.5.out
de la façon suivante :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| for (( i=0 ; $i <= 15 ; i++ ))
do
d1=$(echo "1.6 + $i * 0.1" | bc )
for (( j=0 ; j <= 15 ; j++ ))
do
d2=$(echo "1.6 + $j * 0.1" | bc )
if [ -f toto-$d1-$d2.out* ] ;then
energy[$i_$j]=$(grep 'tutt' toto-$d1-$d2.out* | awk 'NR = 1 {print $5}' ) #recuperation de la valeur de l energie
energy[$i_$j]=$( echo "( $Somme_ref - ${energy[$i_$j]})* 627.509 " |bc ) # calcul de l energie en kcal
#echo "${energy[$i_$j]}"
else
energy[$i_$j]=$(echo "--" )
#echo "${energy[$i_$j]}"
fi
done
done |
En quelque sorte, j'ai un tableau à deux dimensions.
Ce que je voudrais faire c'est écrire le résultat de la façon suivante :
valeur de
1 2 3 4
| 1.6_1.6 1.6_1.7 .....1.6_2.5
1.7_1.6 1.7_1.7 .....
......
2.5_1.6 |
Comme je veux pas tout changer si j'ai un tableau de dimension différentes, je veux éviter un
1 2 3
| echo "${energy[1_1]} ${energy[1_2]} ${energy[1_3]} ${energy[1_4]} " >> tutu
echo "${energy[2_1]} ${energy[2_2]} ${energy[2_3]} ${energy[2_4]} " >> tutu
echo "${energy[3_1]} ${energy[3_2]} ${energy[3_3]} ${energy[3_4]} " >> tutu |
J'avais pensé à
1 2 3 4 5 6 7 8 9
| for (( i=0 ; $i <= 15 ; i++ ))
do
for (( j=0 ; j <= 15 ; j++ ))
do
echo "${energy[$i_$j]}" >> tutu
done
done |
Mais ça va me produire une suite de ligne.
Alors comment faire ?
Faut il produire des colonnes que l'on place les unes à côté des autres si oui comment faire ? Ou faut il produire une suite de ligne et là aussi comment faire ?
Partager