Salut,
J'ai un prob avec la commande SED.
J'ai un programme fortran a exécuté sur une centaine de fichier. Donc je suis amené a modifier le nom du fichier d'entrée dans ce programme fortran.
J'ai donc fait ce petit script qui lit le nom du fichier *.dat et créé un fichier de sortie *.txt.
Mon probleme c'est qu'il n'écrit pas les noms quand je fais:
sed -i "11 s/\(.*=\).*/\1$m)/" pickout.f
sed -i "12 s/\(.*=\).*/\1$n)/" pickout.f
Votre sera très appréciable
MERCI!!!
***************
***************
Voici mon script:
#! /bin/bash
for file in *.dat
do
n=$ echo $file
m=$ echo "$file" | sed "s/dat/txt/"
echo $n
echo $m
sed -i "11 s/\(.*=\).*/\1$m)/" pickout.f
sed -i "12 s/\(.*=\).*/\1$n)/" pickout.f
f77 pickout.f -o pickout
./pickout
done
******************
******************
et mon prog fortran pickout.f :
PROGRAM pickout
INTEGER ilig, icol, idimlig, idimcol
DIMENSION rad(2399)
c Entrer la dimension colonne-ligne des images.
idimcol=2399
idimlig=1674
c Entrer la position colonne-ligne de la cible.
icol=870
ilig=906
c Lecture images et ecriture tableau.
(11) OPEN(4,FILE=)
(12) OPEN(1,FILE=)
&ACCESS='direct',RECL=4*idimcol,FORM='unformatted',STATUS=)
DO k=ilig-2,ilig+2
READ(1,REC=k) (rad(ic),ic=1,idimcol)
WRITE(4,100) (rad(ic),ic=icol-2,icol+2)
ENDDO
100 format(5(F9.4,x))
CLOSE(1)
CLOSE(4)
END