Forum Programmation.shell modification dans un fichier

Posté par  .
Étiquettes : aucune
0
1
mai
2006
bonjour,
je cherche à modifier un fichier avec un script shell. Le fichier contient une variable sous la forme MAVAR="yes" et je voudrais le modifier en MAVAR="no".
J'y arrive parfaitement avec cat+sed en passant par un fichier intermédiaire que je recopie dans mon fichier de départ. Le problème n'est pas là.

Je me demandais s'il existait une façon de faire sans passer par un fichier intermédiaire.
Une idée ?
  • # sed

    Posté par  (site web personnel) . Évalué à 3.

    $ cat file
    plop
    plop
    plop
    
    $ sed -i -e 's/plop/glop/' file
    
    $ cat file
    glop
    glop
    glop
    • [^] # Re: sed

      Posté par  . Évalué à 1.

      Merci de la réponse. Je viens aussi de le trouver dans les forums.
      La lecture du man ne m'avait pas fait comprendre cette option comme étant la solution à mon problème.

      Donc, dans mon cas, la solution est :
      sed -i 's/^MAVAR="yes.*/MAVAR="no"/' monfichier

      Question: ça marche sans le "-e". Pourquoi tu le mets ?
      • [^] # Re: sed

        Posté par  (site web personnel) . Évalué à 1.

        > Question: ça marche sans le "-e". Pourquoi tu le mets ?

        Pourquoi pas ?! :)

        En fait, je sais pas... J'ai toujours mis le "-e" alors qu'effectivement il n'est pas obligatoire... Les habitudes toussa quoi...
    • [^] # Re: sed

      Posté par  . Évalué à 2.

      aparamment le -i est une option de gnu sed.
      Ca ne marchera pas sur une autre implémentation. Utile à savoir dans le cas ou on doit porter un script sur un autre environnement.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.