Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/05/2008, 09h54   #1
Invité régulier
 
Inscription : mars 2005
Messages : 36
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 36
Points : 7
Points : 7
Par défaut Remplacer une ligne dans un fichier ?

Bonjour à tous

Je souhaite remplacer une ligne dans un fichier de type configuration :
Code :
1
2
3
4
 
champ1 = valeur1
champ2 = valeur2
champ3 = valeur3
Je dois modifier la valeur d'un champ, par exemple champ2, en ne connaissant pas sa valeur courante.

J'ai essayé avec le replace de msql2mysql qui est fourni dans la plupart des distributions, mais je n'arrive pas à utiliser d'expression régulière avec...

Je dois effectuer cette action en une seule ligne de commande.

Quelqu'un aurait une idée ?

Merci !
FenX. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/05/2008, 18h26   #2
Membre expérimenté
 
Avatar de BlaireauOne
 
Inscription : mars 2007
Messages : 469
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : mars 2007
Messages : 469
Points : 576
Points : 576
Je pense que cela correspond à ta demande
http://www.shellunix.com/sed.html
http://www.shellunix.com/regexp.html



Code :
1
2
3
4
var="nouvelle valeur"

sed "/^champ2/s/= .*$/= $var/" fichier.txt

Résultat :

Code :
1
2
3
champ1 = valeur1
champ2 = nouvelle valeur
champ3 = valeur3
__________________
Loi de Murphy:
La Théorie c'est quand ça ne marche pas mais que l'on sait pourquoi.
La Pratique c'est quand ça marche mais qu'on ne sait pas pourquoi.
Quand la théorie rejoint la pratique ça ne marche pas et on ne sait pas pourquoi.
BlaireauOne est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/05/2008, 10h45   #3
Membre actif
 
Inscription : mai 2008
Messages : 157
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : mai 2008
Messages : 157
Points : 160
Points : 160
Et si tu aimes les émotions fortes et que modifier directement le fichier ne te fait pas peur :
Code :
1
2
 
perl -pi.backup -e 's/(champ2\s*=).*/$1 nouvelle valeur/;' file
milouz123 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h39.


 
 
 
 
Partenaires

Hébergement Web