Integrer une variable dans la commande SED

Integrer une variable dans la commande SED - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 25-03-2005 à 15:44:22    

Bonjours a tous!  
 
J'essaye de remplacer une chaine de caractère dans un fichier texte par une variable a l'aide de cette commande:  
 
(super utile au passage, elle recherche la chaine de caractère dans un fichier , et la remplace par celle choisie , puis reconstruit le fichier avec un nouveau nom: Nickel pour automatiser des créations de comptes avec fichiers de config ou de boot personalisés)
 

Code :
  1. cat tmp.sh | sed s/"nomscreen"/"$screen"/g > $chemin/tmp1.sh


 
Mais , si cette commande marche avec une chaine de caractere normale à la place de ma variable $screen , la il suprime la chaine de caractere mais n'y place pas la valeur de la variable pourtant bien enregistrée (vérifiée avec un echo)
Quelqu'un sait comment integrer ma variable?  

Reply

Marsh Posté le 25-03-2005 à 15:44:22   

Reply

Marsh Posté le 25-03-2005 à 16:09:49    

Bonjour,
 

cat tmp.sh | sed s/"nomscreen"/"\$screen"/g > $chemin/tmp1.sh


suffit de rajouter un backslash pour protéger le $ (afin qu'il ne soit pas interprété) et ça marche ;)
 
Oliv'

Reply

Marsh Posté le 25-03-2005 à 16:56:09    

gentildrea mer : a mon avis tu as fais un typo car ta commande marche parfaitement (bien que le cat soit inutile, mais c'est une autre histoire).
 
0liv : ce qu'il veut si j'ai bien compris c'est remplacer "nomscreen" par le contenu de la variable $screen, pas par "$screen".

Reply

Marsh Posté le 26-03-2005 à 13:47:26    

Citation :

ce qu'il veut si j'ai bien compris c'est remplacer "nomscreen" par le contenu de la variable $screen, pas par "$screen".


si effectivement il veut faire ça alors son exemple est censé marcher... et dans ce cas si ça ne marche pas, ça veut dire que sa variable $screen n'est pas affecté dans le shell qui execute la commande.

Reply

Sujets relatifs:

Leave a Replay

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