#1 Le 09/09/2011, à 13:04
- yapupersone974
Sed : suppression point virgule début de ligne
Bonjour à tous,
Je suis en train d'écrire un script me permettant l'installation de plusieurs logiciels avec une configuration bien précise. Je dois donc modifier quelques fichiers de conf et je le fais à travers plusieurs commandes Sed, je rencontre malgré tout un problème.
J'ai dans un de mes fichiers une ligne du genre :
;ligne_a_modifier.txt
Et je souhaiterai supprimer le point virgule au début de la ligne, j'avais pensé à :
s/;ligne=a_modifier\.txt/ligne=a_modifier\.txt/
J'ai bien essayé d'échapper le point virgule mais impossible d'obtenir la ligne souhaitée, quelqu'un aurait il une idée pour solutionner mon problème ?
Petite précision, je n'en suis pas à ma première commande de substitution avec Sed, mais celle ci est assez récalcitrante et m'empêche d'avancer, je suppose que c'est lié au point virgule mais aucune certitude.
Merci d'avance, et bonne journée à tous.
Dernière modification par yapupersone974 (Le 09/09/2011, à 13:12)
Hors ligne
#2 Le 09/09/2011, à 14:25
- binouche22
Re : Sed : suppression point virgule début de ligne
Voila :
sed 's/;ligne=a_modifier/ligne=a_modifier/g' fichier
binouche22
Hors ligne
#3 Le 09/09/2011, à 15:42
- aduxas
Re : Sed : suppression point virgule début de ligne
Si tu veux supprimer tous les ; en début de ligne:
sed -i 's/^;//' fichier
Si tu veux une ligne spécifique
sed -i 's/^;\(ligne_a_modifier\)/\1/' fichier
L'option -i remplace dans le fichier meme. Comme la substitution est unique, il n'y a pas besoin du g à la fin. Il n'y a pas non plus besoin d'échapper le point \.txt dans la chaine de remplacement.
Dernière modification par aduxas (Le 09/09/2011, à 15:43)
Hors ligne
#4 Le 09/09/2011, à 17:54
- Watael
Re : Sed : suppression point virgule début de ligne
salut,
"plus logiquement"
sed -i '/ligne_a_modifier/s/^;//' fichier
non?
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#5 Le 09/09/2011, à 19:35
- aduxas
Re : Sed : suppression point virgule début de ligne
Tout à fait.
Hors ligne