[bash linux] remplacer une ligne
Résolu
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
par la ligne
Comme on est pas sur du nombre d'espace, je voudrais que la commande trouve toute ligne du style
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
--
Il y a 10 types de personnes dans le monde
Ceux qui comprennent le binaire et les autres.
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
--
Il y a 10 types de personnes dans le monde
Ceux qui comprennent le binaire et les autres.
3 réponses
-
Modérateur
sed '/^[uU][sS][eE][iI][pP][vV]6/ s/on/Off/I'
;-))
-
ModérateurSalut,
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
;-))
-
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