Probleme sur sed

Probleme sur sed - Shell/Batch - Programmation

Marsh Posté le 26-10-2010 à 09:20:00    

Bonjour,
Je cherche a faire une utilisation de sed dans un script en passant en parametre une variable et non une simple chaine.
Voici le bout de script qui pose probleme:
 

Code :
  1. #!/bin/bash
  2. echo  "\t\t\nSuppression dans fichier /etc/hosts"
  3. read ip
  4. sed '/"$ip    "/d' $add_ip >> /etc/hosts.new


 Quand je regarde mon fichier hosts.new la ligne concernée n'est pas spprimée.
Comment faire pour passer la variable ip dans sed?
Merci

Reply

Marsh Posté le 26-10-2010 à 09:20:00   

Reply

Marsh Posté le 26-10-2010 à 11:09:49    

Code :
  1. #!/bin/bash
  2. echo  "\t\t\nSuppression dans fichier /etc/hosts"
  3. read ip
  4. sed '/'$ip'    /d' $add_ip >> /etc/hosts.new


 
Chez moi ca fonctionne

Reply

Marsh Posté le 26-10-2010 à 14:20:30    

Suis sous solaris.
Merci je vais chercher plus tard je faits la meme chose avec grep -v
Cordialement.

Reply

Marsh Posté le 28-10-2010 à 16:41:28    

J'utilise le ksh sur solaris, mais en bash ca devrait fonctionner pareil. Ton problème viens des ' qui fait que le shell ne remplacera pas ta variable par sa valeur.  
La solution de roondar avec des simple quote dans le sed devrait fonctionner par contre.
 
Sinon pour ce genre de situation, j'aime autant le grep qui permet en outre de se passer de la tabulation ou de l'espace qui doit suivre l'IP :
 

Code :
  1. #!/bin/bash
  2. echo  "\t\t\nSuppression dans fichier /etc/hosts"
  3. read ip
  4. grep -vw "$ip" $add_ip >> /etc/hosts.new


Reply

Sujets relatifs:

Leave a Replay

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