Modifier automatiquement une ligne dans un fichier conf

Résolu
xunil2003 Messages postés 765 Date d'inscription   Statut Membre Dernière intervention   -  
xunil2003 Messages postés 765 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.
A voir également:

7 réponses

xunil2003 Messages postés 765 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
zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 430
 
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
xunil2003 Messages postés 765 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
zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 430
 
$ echo "MaxUpload=30" | sed '/^MaxUpload/ s/=.*/=500/'
MaxUpload=500
0
xunil2003 Messages postés 765 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
zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 430
 
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
xunil2003 Messages postés 765 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
zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 430
 
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
xunil2003 Messages postés 765 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
xunil2003 Messages postés 765 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