SED Question

I need to SED a file and replace:

   Transport Hostname="cscx1001"

with:

   Transport Hostname="9.9.9.9"

Here is the whole command:

cat plugin-cfg.xml | sed "s/Transport Hostname="cscx1234"/Transport Hostname="10.9.9.9"/g" > plugin.xml

I'm having issues due to the "'s around "cscx1234" and "10.9.9.9"

I tried escaping the " with slash, but that didn't work.

After I get the syntax to make this work from the command line I have to take it one step further....

I will be placing "cscx1234" and "10.9.9.9" in variables - HOSTNAME and IP.  If the double quotes were not an issue it would look something like this:

cat ${CONFIG}/plugin-cfg.xml | sed "s/Transport Hostname="${HOSTNAME}"/Transport Hostname="${IP}"/g" > ${CONFIG}/plugin.xml

Any ideas on the correct syntax for these strings?

Thanks,

Lisa


lphillips120898Asked:
Who is Participating?
 
ozoConnect With a Mentor Commented:
You left out the ' between the end of
's/Transport Hostname="
and
${HOSTNAME}
also the 's around
"/Transport Hostname="
and before
"/g'
0
 
ozoCommented:
cat plugin-cfg.xml | sed 's/Transport Hostname="cscx1234"/Transport Hostname="10.9.9.9"/g' > plugin.xml
0
 
ozoCommented:
cat ${CONFIG}/plugin-cfg.xml | sed 's/Transport Hostname="'${HOSTNAME}'"/Transport Hostname="'${IP}'"/g' > ${CONFIG}/plugin.xml
0
Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

 
lphillips120898Author Commented:
070,

The first statement worked like a charm at the command line, so I assumed the second statement would work as well within the script - but it didn't.

Will you take a look at the script and see if you find anything wrong?  I echoed the HOSTNAME and IP, so I know they are gettting set.  Let me know what you think.

Thanks,

Lisa

*** SCRIPT ***
[wsadmin @ cscx1001:/opt/WebSphere/AppServer/bin/scripts]:> more genPlugin.sh
DT=$(date +%d-%m-%y)
BACKUP=/local/WebSphere/apps/Backup
HOSTNAME=`uname -n`
BIN=/opt/WebSphere/AppServer/bin
CONFIG=/opt/WebSphere/AppServer/config
BOOTSTRAP=$(grep bootstrapPort ${BIN}/admin.config | awk -F'=' '{print $2}')
IP=`ping -c 1 $HOSTNAME | sed "s/)/(/g" | awk '{FS="("}{print $2}'`

echo $HOSTNAME
echo $IP

${BIN}/GenPluginCfg.sh -adminNodeName $HOSTNAME -nameServiceHost $HOSTNAME -nameServicePort $BOOTSTRAP

cat ${CONFIG}/plugin-cfg.xml | sed 's/Transport Hostname="${HOSTNAME}"/Transport Hostname="${IP}"/g'
 > ${CONFIG}/plugin.xml


** OUTPUT ** The "plugin.xml" doesn't have any changes - it is the same as plugin-cfg.xml  ***

/scripts]:> genPlugin.sh
cscx1001  (echo of HOSTNAME)
10.12.90.10  (echo of IP)

/WebSphere/AppServer/config]:> ls -lat plugin*
-rw-r--r--   1 wsadmin  wsadmin        3943 Jun 27 16:00 plugin.xml
-rwxr-----   1 wsadmin  wsadmin        3943 Jun 27 16:00 plugin-cfg.xml


0
 
ahoffmannCommented:
# ozo's working suggestion improved:
(cat ${CONFIG}/plugin-cfg.xml)|sed 's/Transport Hostname="'${HOSTNAME}'"/Transport Hostname="'${IP}'"/g' > ${CONFIG}/plugin.xml
0
 
lphillips120898Author Commented:
Worked like a charm!  Thanks.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.