Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 21/05/2007, à 17:14

Itzy

Changement d'une chaine de caractère avec SED

Bonjour,
voilà en deux mots mon problème. J'aimerai modifier les paramètres d'entrés d'un programme. Ces paramètres se trouvent sur un fichier texte que l'executable lit avant de tourner.

Mon fichier texte paramètre :

'title                 '  Lennard Jones at 1500K
'conf_ini_mod    '  standard
'name_conf_ini   '  config_out/config_AB5010136.nil
'structure type   '  FCC-AB3
'temperature     '  400.
'loops              '  10
'ising loops       '  0
'flip loops        '  10
'displ.loops       '  10
'volume loops    '  5,X/=Y/=Z

Ce que j'aimerai faire, c'est pouvoir modifier la quatrième ligne en vue d'incrémenter la température n fois (avec n grand), ce que vous comprendrez, je renonce à faire à la main.

Je tente donc d'utiliser SED dans un script pour modifier cette ligne, mais toutes mes tentives sont restées vaines. Voila ce que j'ai tenté de faire (à valeur de test dans un premier temps, je rajouterai une boucles for par la suite).

Mon script :

#!/bin/bash
#param.sh

t=401
sed -e "s/'temperature     '  400./'temperature     '  $t/g" lj.in

exit 0

Le résultat : le contenu du nouveau fichier est imprimé sur la console, mais le fichier texte lui n'est pas modifié.
Si quelqu'un à une petite idée, je lui en serais n fois reconnaissant.

Cordialement,
ItZy.

#2 Le 21/05/2007, à 21:58

lunique

Re : Changement d'une chaine de caractère avec SED

A premiere vue, tu rajoutes l'option

--in-place[=SUFFIX]

sa permet d'éditer directement le fichier:
sed --in-place=bck -e "s/'temperature     '  400./'temperature     '  $t/g" lj.in
va permettre d'avoir l'original qui s'appelera lj.inbck et tu aura la nouvelle temperature dans lj.in

Hors ligne

#3 Le 22/05/2007, à 09:57

Itzy

Re : Changement d'une chaine de caractère avec SED

Salut merci pour ta réponse,
je crains qu'hélas le problème ne s'arrête pas ici. J'ai testé la ligne du post précédent. Mais un horrible message d'erreur vient entacher cette belle matinée de soleil.

Message

sed: illegal option -- -
usage: sed script [-Ean] [-i extension] [file ...]
       sed [-an] [-i extension] [-e script] ... [-f script_file] ... [file ...]

Si tu as une idée, je suis preneur.
Merci.