commande sed problème

commande sed problème - Shell/Batch - Programmation

Marsh Posté le 28-03-2010 à 16:16:58    

Bonjour,
 
Je souhaite remplacer la variable "adresse" se trouvant dans le fichier "fic.txt" par la valeur saisie par l'utilisateur ($adresseIp). Je souhaite entrer une adresse de la forme 192.168.1.0/24
Le problème est que j'obtiens le message d'erreur suivant :
sed: -e expression n°1, caractère 34: option inconnue pour `s'
 
Visiblement sed n'aime pas le caractère "/" que je lui passe.
 

Code :
  1. read adresseIp
  2. sed -i "s/adresse/$adresseIp/g" /home/user/Desktop/fic.txt


 
Auriez vous une solution pour contourner ce problème ?
 
Merci

Reply

Marsh Posté le 28-03-2010 à 16:16:58   

Reply

Marsh Posté le 28-03-2010 à 17:01:43    

En protégeant le "/" par un "\" :)  
 
Ou alors en utilisant d'autres séparateurs pour le sed -> sed -i "s@adresse@$adresseIp@g"
(ca m'a semblé bizarre quand je l'ai lu mais j'ai jamais testé [:figti] )

Reply

Marsh Posté le 28-03-2010 à 17:50:09    

J'ai opté pour la seconde solution avec les @ et je confirme ça fonctionne.
 
Merci de ton aide

Reply

Marsh Posté le 30-03-2010 à 10:18:10    

super ce truc de changer de séparateur ! fallait le savoir !
 
Merci mrbebert !


---------------
En programmation, quand t'as un problème et qu'il n'y a que deux solutions valides, seule la troisième fonctionne !
Reply

Marsh Posté le 30-03-2010 à 10:23:16    

Je n'y suis pour rien, je l'ai appris récemment ici même [:cosmoschtroumpf]

Reply

Marsh Posté le 30-03-2010 à 11:04:48    

pas grave ^^ tu l'as ressorti au bon moment ! C'est tout un art !!!
 
;-)


---------------
En programmation, quand t'as un problème et qu'il n'y a que deux solutions valides, seule la troisième fonctionne !
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed