Téléchargement
illégal
Posez votre question Signaler

[bash linux] remplacer une ligne [Résolu]

santiago69 483Messages postés 7 mars 2001Date d'inscription 22 avril 2010Dernière intervention - Dernière réponse le 29 mai 2008 à 20:14
salut a tous,
je voudrais ecrire une ligne de commande qui remplace une ligne par une autre dans un fichier.
Il s'agit du fichier /etc/proftpd/proftpd.conf
Et je voudrais remplacer la ligne
UseIPv6                         on

par la ligne
UseIPv6                         off

Comme on est pas sur du nombre d'espace, je voudrais que la commande trouve toute ligne du style
UseIPv6*

Je voudrais que le test se fasse seulement sur le debut de la ligne mais le remplacement sur la ligne entiere. C'est possible ?
Santiago
Lire la suite 

[bash linux] remplacer une ligne »

3 réponses
Réponse
+2
moins plus
Salut,

Avec "sed" c'est faisable. Dans un 1er temps essaie comme ça :
sed '/^UseIPv6/ s/on/off/' /etc/proftpd/proftpd.conf 
puis si le résultat escompté est satisfaisant, rajoute le switch "-i" de cette manière :
sed -i.BAK '/^UseIPv6/ s/on/off/' /etc/proftpd/proftpd.conf 
;-))
Ajouter un commentaire
Réponse
+2
moins plus
sed '/^[uU][sS][eE][iI][pP][vV]6/ s/on/Off/I'
;-))
Ajouter un commentaire
Réponse
+1
moins plus
Salut jipicy,
Merci beaucoup pour ta reponse, ca marche.
Est il possible de rendre le test insensible a la casse ?
je voudrais qu'il trouve
UseIPv6 mais aussi useipv6 ou UseipV6
Je voudrais aussi qu'il remplace On ou on par Off
Merci de ton aide
Santiago
Ajouter un commentaire
Ce document intitulé « [bash linux] remplacer une ligne » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?