I'm using
sed to alter a parameter file used in another process. Basically, the file is a template containing a few variables which need to be replaced at runtime.
The problem is that using
sed with filenames that contain the
/ character causes matches to fail.
eg:
fileName=/mnt/someinputfile
sed -e "s/param1/${fileName}/g" somefile.txt > runfile
Could someone suggest how I can get around this?
Also, anyone know a good site for
regexp?
=====================================
I've also tried doing an escaped forward slash substitution. ie. replace all "/" with "\\\/". It works
outside the shell, but not inside. Wierd.
Here's the code fragment:
Code:
# 2 Modify the runCSjob.xml file: output to jobFile
subRunDate=`echo ${runDate}|sed -e "s/\//\\\\\//g"`;
substituteRunDate="1,\$s/\\\${runDate}/${subRunDate}/g";
subOutputFile=`echo ${outputFile}|sed -e "s/\//\\\\\//g"`;
substituteOutputFile="1,\\\$s/\${outputFile}/${subOutputFile}/g"
substituteRunType="1,\$s/\${runType}/${runType}/g";
sed -e "${substituteRunDate}" -e "${substituteOutputFile}" -e "${substituteRunType}" ${UTOPIA_BIN}/runCSjob.xml > ${tmpFile}.xml
Ideas??