Modifier automatiquement une ligne dans un fichier conf

Résolu/Fermé
xunil2003 Messages postés 761 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 24 mars 2024 - Modifié par xunil2003 le 2/03/2013 à 16:45
xunil2003 Messages postés 761 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 24 mars 2024 - 2 mars 2013 à 22:47
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 761 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 24 mars 2024 14
Modifié par xunil2003 le 2/03/2013 à 17:52
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 dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
2 mars 2013 à 16:51
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 761 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 24 mars 2024 14
2 mars 2013 à 17:53
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 dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
2 mars 2013 à 17:57
$ echo "MaxUpload=30" | sed '/^MaxUpload/ s/=.*/=500/'
MaxUpload=500
0
xunil2003 Messages postés 761 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 24 mars 2024 14
2 mars 2013 à 18:06
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 dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
2 mars 2013 à 18:10
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 761 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 24 mars 2024 14
Modifié par xunil2003 le 2/03/2013 à 18:22
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 dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
2 mars 2013 à 18:36
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 761 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 24 mars 2024 14
Modifié par xunil2003 le 2/03/2013 à 20:40
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 761 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 24 mars 2024 14
2 mars 2013 à 22:47
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