Modifier automatiquement une ligne dans un fichier conf [Résolu/Fermé]

Signaler
Messages postés
727
Date d'inscription
mercredi 17 novembre 2004
Statut
Membre
Dernière intervention
10 juin 2021
-
Messages postés
727
Date d'inscription
mercredi 17 novembre 2004
Statut
Membre
Dernière intervention
10 juin 2021
-
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

Messages postés
727
Date d'inscription
mercredi 17 novembre 2004
Statut
Membre
Dernière intervention
10 juin 2021
13
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
36299
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 230
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

Messages postés
727
Date d'inscription
mercredi 17 novembre 2004
Statut
Membre
Dernière intervention
10 juin 2021
13
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.
Messages postés
36299
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 230
$ echo "MaxUpload=30" | sed '/^MaxUpload/ s/=.*/=500/'
MaxUpload=500
Messages postés
727
Date d'inscription
mercredi 17 novembre 2004
Statut
Membre
Dernière intervention
10 juin 2021
13
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.
Messages postés
36299
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 230
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 ;-)
Messages postés
727
Date d'inscription
mercredi 17 novembre 2004
Statut
Membre
Dernière intervention
10 juin 2021
13
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>
Messages postés
36299
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 230
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 ;-\
Messages postés
727
Date d'inscription
mercredi 17 novembre 2004
Statut
Membre
Dernière intervention
10 juin 2021
13
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.
Messages postés
727
Date d'inscription
mercredi 17 novembre 2004
Statut
Membre
Dernière intervention
10 juin 2021
13
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.