#1 Le 31/05/2008, à 12:16
- pika76
[résolu] script pour traitement de données
Bonjour,
je commence tout juste a faire des scripts et j ai besoin d aide car depuis ce matin je me casse le crane pour un truc!!
voila mon probleme.
J ai 500 fichiers qui ont la meme structure. J ai besoin de faire des tableaux sachant que je traite après ces tableaux sous matlab. j ai donc crée un premier tableau et il me faut le 2eme.
Mon script
j' ai listé dans un fichier (nom_de fichier) tous les fichiers. j'ai recupéré deux informations qui sont contenu dans le titre. ex : id_184000_0.26.txt >>> j ai crée un fichier avec un tableau comprenant "184000 0.26" dans le fichier tableau_valeur
#!/bin/sh
rm -R ./treat
mkdir ./treat/
cp id_* ./treat/
cd ./treat/
cd ..
\ls ./treat/ > nom_de_fichier
nfi=`wc nom_de_fichier | awk '{print $1}' -`
ifi=1;
while expr ${ifi} \<= ${nfi} 1> /dev/null 2>&1 ; do
sed -e 's/id_//g' nom_de_fichier > lls2
sed -e 's/.txt//g' lls2 > lls3
sed -e 's/_/ /g' lls3 > tableau_valeur
ifi=`expr $ifi + 1` ; done
rm lls2 lls3
cd ./treat
#jusqu'ici tout va bien
#je souhaite maintenant lire chaque fichier (cad a dire à partir du fichier "nom_de_fichier" je prend par exemple id_192000_0.26.txt et recupèrer la ligne qu'il me faut et ensuite passé a la ligne suivante de nom_de_fichier pour prendre dans un autre fichier, la ligne qu'il me faut!!!
while expr ${ifi} \<= ${nfi} 1> /dev/null 2>&1 ; do
var=`sed -n ${ifi}p ../nom_de_fichier` [b](ça ne marche pas)[/b]
sed '/1073/!d' $var > deformation
ifi=`expr $ifi + 1` ; done
rm def
j ai essayé cela et ça marché :
var=`sed -n $1p ../nom_de_fichier`
sed '/1073/!d' $var > deformation
#sed '$d' deformation > def
#sed '$d' def > deformation
voici le fichier : nom_de_fichier (pas en entier car il est tres long
id_180000_0.26.txt
id_180000_0.27.txt
id_180000_0.28.txt
id_180000_0.29.txt
id_180000_0.31.txt
id_180000_0.32.txt
id_180000_0.33.txt
id_180000_0.3.txt
id_184000_0.26.txt
id_184000_0.27.txt
id_184000_0.28.txt
id_184000_0.29.txt
id_184000_0.31.txt
id_184000_0.32.txt
id_184000_0.33.txt
id_184000_0.3.txt
id_188000_0.26.txt
id_188000_0.27.txt
et voici le fichier id_180000_0.26.txt :
Page 1
Simulation 30-May-08 12:59:28
Group ID : None
Result Set : 2 - B.C. 1,STRAIN_2,IDENT_PATTE
Report Type : Contour Units : MN
Result Type : STRAIN
Frame of Reference: Part Data Component: X-Component
Node Strain-XX Strain-XY Strain-YY Strain-XZ Strain-YZ Strain-ZZ
1072 1.808E+00 2.319E-02 -5.683E-02 -1.551E-01 -1.992E-03 -9.183E-01
[b] 1073 1.808E+00 2.112E-02 -5.459E-02 -1.563E-01 -6.288E-03 -9.229E-01
[/b] (ligne a recupéré)
1085 1.758E+00 2.231E-02 -9.703E-02 -6.712E-02 -1.118E-02 -7.627E-01
1086 1.758E+00 2.023E-02 -9.479E-02 -6.860E-02 -6.166E-03 -7.676E-01
1410 1.386E+00 1.791E-02 -5.587E-02 -1.539E-01 -1.638E-03 -7.196E-01
1411 1.386E+00 1.998E-02 -5.368E-02 -1.554E-01 -6.535E-03 -7.241E-01
1423 1.337E+00 1.692E-02 -9.149E-02 -6.811E-02 -1.082E-02 -5.677E-01
1424 1.337E+00 1.899E-02 -8.930E-02 -6.975E-02 -6.634E-03 -5.726E-01
1073 1072 1411 1085 1410 1423
Maximum 1.808E+00 2.319E-02 -5.368E-02 -6.712E-02 -1.638E-03 -5.677E-01
1424 1423 1085 1073 1085 1073
Minimum 1.337E+00 1.692E-02 -9.703E-02 -1.563E-01 -1.118E-02 -9.229E-01
Average 1.572E+00 2.008E-02 -7.420E-02 -1.118E-01 -6.406E-03 -7.445E-01
En gros ce que je demande.
comment faire une boucle dans mon script qui lit un fichier ligne par ligne et qui me renvoi dans une variable, ce qu'il y a sur la ligne.
Dernière modification par pika76 (Le 31/05/2008, à 16:50)
Hors ligne