Modifier automatiquement une ligne dans un fichier conf

Résolu
xunil2003 Messages postés 766 Date d'inscription   Statut Membre Dernière intervention   -  
xunil2003 Messages postés 766 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'ai un fichier dans lequel je voudrais modifier la ligne automatiquement avec un script
il y a 150 lignes dans le fichier.
Je voudrais modifier cette ligne
MaxUpload=0
par
MaxUpload=120


Mais ça marche pas
sed '/^MaxUpload/ s/0/120/' /home/serveur/.asterisk/asterisk.conf


Comment je peux faire ?

Merci.

7 réponses

  1. xunil2003 Messages postés 766 Date d'inscription   Statut Membre Dernière intervention   14
     
    Bonjour,

    J'ai trouvé l'erreur il manqué un "=" après "MaxUpload" car la ligne a remplacé est
    MaxUpload=0
    et le "-i" après "sid' comme vous me l'avez signalé

    Voila comme ceci ça marche
    sed -i '/^MaxUpload=/ s/0/30/' /home/serveur/.asterisk/asterisk.conf


    Vérification
    serveur@debian:~$ cat -n /home/serveur/.asterisk/asterisk.conf | grep MaxUpload=    
        11  MaxUpload=30    
    serveur@debian:~$  


    Merci.
    1
  2. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 502
     
    Salut,

    Extrait du man sed :
           -i[SUFFIX], --in-place[=SUFFIX]
    
                  edit files in place (makes backup if extension supplied)

    Donc :
    sed -i '/^MaxUpload/ s/0/120/' /home/serveur/.asterisk/asterisk.conf
    ou mieux encore :
    sed -i.bak '/^MaxUpload/ s/0/120/' /home/serveur/.asterisk/asterisk.conf

    0
  3. xunil2003 Messages postés 766 Date d'inscription   Statut Membre Dernière intervention   14
     
    Bonjour,

    J'ai une autre question comment puis je faire pour changer le chiffre de la ligne
    MaxUpload=30
    quel qu'il soit le chiffre après
    MaxUpload=
    avec la commande sed ?
    Je doit souvent changer ce chiffre.

    Merci.
    0
    1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 502
       
      $ echo "MaxUpload=30" | sed '/^MaxUpload/ s/=.*/=500/'
      MaxUpload=500
      0
  4. xunil2003 Messages postés 766 Date d'inscription   Statut Membre Dernière intervention   14
     
    Bonjour

    Je suis désolé mais ça ne marche pas
    echo "MaxUpload=30" | sed '/^MaxUpload/ s/=.*/=500/' /home/serveur/.asterisk/asterisk.conf

    ça me liste tout le contenu du fichier /home/serveur/.asterisk/asterisk.conf

    Merci.
    0
    1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 502
       
      Le echo c'était un exemple ;-(

      sed '/^MaxUpload=/ s/=.*/=500/' /home/serveur/.asterisk/asterisk.conf

      N'oublie pas le "=" derrière "MaxUpload" hein ? Et le "-i" si c'est bon ;-)
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. xunil2003 Messages postés 766 Date d'inscription   Statut Membre Dernière intervention   14
     
    Bonjour

    1/ Alors avec
    sed '/^MaxUpload=/ s/=.*/=500/'/home/serveur/.asterisk/asterisk.conf
    il me liste tout le contenu du fichier /home/serveur/.asterisk/asterisk.conf

    2/ Avec le -i
    serveur@debian:~$ sed -i '/^MaxUpload=/ s/=.*/=500/' /home/serveur/.asterisk/asterisk.conf  
    serveur@debian:~$ cat /home/serveur/.asterisk/asterisk.conf | grep "MaxUpload="  
    MaxUpload=0  
    serveur@debian:~$  
    Rien ne fonctionne, je suis pas dingue !  
    
    <code>N'oublie pas le "=" derrière "MaxUpload" hein ? Et le "-i" si c'est bon ;-)  
    
    Heu j'ai pas comprids pour "=" derrière "MaxUpload" et pour le "-i" c'est pas bon pour l'instant !

    Merci.
    </code>
    0
    1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 502
       
      Soit le fichier suivant :
      $ cat plop 
      Je voudrais modifier cette ligne
      
      MaxUpload=0
      
      par
      
      MaxUpload=120
      
      Mais ça marche pas
      blabla MaxUpload blablabla


      Sur lequel j'applique la syntaxe donnée dans mon précédent message :

      $ sed '/^MaxUpload=/ s/=.*/=500/' plop 
      Je voudrais modifier cette ligne
      
      MaxUpload=500
      
      par
      
      MaxUpload=500
      
      Mais ça marche pas
      blabla MaxUpload blablabla

      Les 2 "MaxUpload" se trouvant en début de ligne ont bien été modifiés ;-\
      0
  7. xunil2003 Messages postés 766 Date d'inscription   Statut Membre Dernière intervention   14
     
    Bonjour,

    Il y a un truc bizarre que je ne comprends pas, quand je fais
    sed -i '/^MaxUpload=/ s/=.*/=500/' /home/serveur/.asterisk/asterisk.conf 


    je vérifie tout est ok
    serveur@debian:~$ cat /home/serveur/.asterisk/asterisk.conf  | grep "MaxUpload=" 
    MaxUpload=500 
    serveur@debian:~$


    Après une minute il se remet à 0 tout seul ? pourquoi ?????
    serveur@debian:~$ cat /home/serveur/.asterisk/asterisk.conf  | grep "MaxUpload=" 
    MaxUpload=0 
    serveur@debian:~$


    Merci.
    0
  8. xunil2003 Messages postés 766 Date d'inscription   Statut Membre Dernière intervention   14
     
    Bonsoir,

    J'ai trouvé la raison.
    Il faut arrêter le service avant de modifier le fichier conf.
    Puis une fois la modification effectuée, démarrer le service.

    Merci.
    0