Remplacement de chaine de caractère - Shell/Batch - Programmation
Marsh Posté le 30-04-2007 à 15:38:34
Tu parle d'un batch windows ou d"un bash linux ?
Par ce que si c'est un batch windows (par ce que tu a écri batch et pas bash) les variablé s'utilise comme ca: %CH2%
Marsh Posté le 01-05-2007 à 09:14:27
C'est le même genre de problème que dans ton autre question : tes variables d'environnement ne sont pas connues à l'intérieur de sed. Remplace tes ' par des ", ou bien si tu préfère, ferme le ' avant le nom de variable et ré-ouvre le après (sed -e 's#'$CH1'#'$CH2'#')
Marsh Posté le 01-05-2007 à 09:47:34
sylvainleleu a écrit : Batch AIX |
Ca ne veut rien dire. Tu peux être en bourne shell, en korn shell, en bourne again shell, en c-shell, en z shell, etc.
Et pour le reste, matafan a répondu à la question (s'il passe avant moi sur tous les topics je vais m'ennuyer aujourd'hui ) : les apostrophes indiquent au shell qu'il ne doit pas évaluer le contenu de la chaîne, alors qu'avec les guillemets il effectue les interpolations demandées.
Exemple (en ksh) :
$ blabla="tu peux pas taiste" |
Marsh Posté le 10-05-2007 à 16:46:00
il me semble que :
echo $REP1 |sed -e "s#$CH1#$CH2#"
fonctionne bien...
[edit] oups, 2 trains de retard, DSL
Marsh Posté le 30-04-2007 à 12:20:05
Dans un script batch j'ai trois chaines :
REP1=/home/toto/tmp/france
CH1=/home/toto/
CH2=/user/titi/
Je désire remplacer CH1 par CH2 dans REP1.
J'ai fait le script suivant :
REP1=/home/toto/tmp/france
CH1=/home/toto/
CH2=/user/titi/
T=`echo $REP1 |sed -e 's#$CH1#$CH2#'`
mais il n'interprete pas $CH1 et $CH2
une idée ?