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