en utilisant la variable date dans la commande sed

Je stocke la date dans une variable et je l’utilise dans le sed comme ci-dessous.

DateTime=`date "+%m/%d/%Y"` Plc_hldr1=`head -$i place_holder.txt | tail -1 | awk -F ' ' '{ print $1 }'` Plc_hldr2=`head -$i place_holder.txt | tail -1 | awk -F ' ' '{ print $2 }'` sed "s/$Plc_hldr1/$DateTime/;s/$Plc_hldr2/$Total/" html_format.htm >> /u/raskar/test/html_final.htm 

Lors de l’exécution de la commande sed, j’obtiens l’erreur ci-dessous.

 sed: 0602-404 Function s/%%DDMS1RT%%/01/02/2014/;s/%%DDMS1C%%/1235/ cannot be parsed. 

Je suppose que cela se produit car la date contient la sortie suivante qui comprend des barres obliques ‘/’

 01/02/2014 

J’ai essayé avec différentes citations autour de la date. Comment puis-je le faire fonctionner?

Remplacez le séparateur par quelque chose qui n’apparaîtra pas dans vos modèles, par exemple:

 sed "s?$Plc_hldr1?$DateTime?;s?$Plc_hldr2?$Total?" 

Pas la relance directe mais remplacer

 Plc_hldr1=`head -$i place_holder.txt | tail -1 | awk -F ' ' '{ print $1 }'` Plc_hldr2=`head -$i place_holder.txt | tail -1 | awk -F ' ' '{ print $2 }'` 

par

 Plc_hldr1=`sed -n "$i {s/ .*//p;q}"` Plc_hldr2=`sed -n "$i {s/[^ ]\{1,\} \{1,\}\([^ ]\{1,\}\) .*/\1/p;q}"` 

et avec aix / ksh

 sed -n "$i {s/\([^ ]\{1,\} \{1,\}[^ ]\{1,\}\) .*/\1/p;q}" | read Plc_hldr1 Plc_hldr2