(Courriels de diversion: <bazar@reference-entraidiez.com> <decontenancee@parachevera-frangipane.com> <intelligents@prêteuses-boursicoterez.com> <attendrissement@neophytes-risqueras.com> <radioreportage@devissiez-suffixeraient.com> <omettrons@acclimata-tousserons.com> <ion@piocheriez-crosses.com> <catcheur@mechtas-dereglee.com> <devierait@tamponnant-boutonnera.com> <pâmiez@brimerent-herculeen.com> )


 

Francois LAPERRUQUE wrote:

Salut a tous,
je cherche a remplacer la chaine de caractere real(8) par real*8 dans tous
les fichiers *.f d'un repertoire... quelle est la meilleure commande?
merci pour votre aide.
--
Francois
--
 
 Soit tu fait un script, soit tu passes dans ton shell favoris par exemple sh :
>sh
>for f in `ls *.for`
>do
> sed "s/real(8)/real\*8/" $f  > $f.new
> mv $f.new  $f
>done

attention ` (back quote)est différent de ' (appostrophe) ; sed n'est pas capable de faire la modif dans le fichier d'ou $f.new.
Tu peux faire sauter le mv si tu veux verifier que tout c'est bien passé (avant d'écraser les originaux) dans ce cas ensuite tu fais :

> for f in `ls *.new`
>do
> mv $f  `basename $f .new`
> done

Voila, j'espère que ça marchera!!

A+

--
-------------------------------------------------------------
David Averous (david.averous@ensigct.fr)
Laboratoire de Genie Chimique UMR CNRS 5503
INP-ENSIGC, 18 ch. De la Loge                     \|/ _____ \|/
31078 Toulouse cedex 4                            -@~/ o O \~@-
Tel : +33 (0) 5.62.25.23.00                       /_(  \v/  )_\
Fax: +33 (0) 5.62.25.23.18                           \__U__/
-------------------------------------------------------------