SED Question

Posted on 2002-06-27
Last Modified: 2013-11-18
I need to SED a file and replace:

   Transport Hostname="cscx1001"


   Transport Hostname=""

Here is the whole command:

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

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

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 "" 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?



Question by:lphillips120898
  • 3
  • 2
LVL 84

Expert Comment

ID: 7114276
cat plugin-cfg.xml | sed 's/Transport Hostname="cscx1234"/Transport Hostname=""/g' > plugin.xml
LVL 84

Expert Comment

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

Author Comment

ID: 7114993

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.



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

echo $IP

${BIN}/ -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  ***

cscx1001  (echo of HOSTNAME)  (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

Does Powershell have you tied up in knots?

Managing Active Directory does not always have to be complicated.  If you are spending more time trying instead of doing, then it's time to look at something else. For nearly 20 years, AD admins around the world have used one tool for day-to-day AD management: Hyena. Discover why

LVL 84

Accepted Solution

ozo earned 100 total points
ID: 7115274
You left out the ' between the end of
's/Transport Hostname="
also the 's around
"/Transport Hostname="
and before
LVL 51

Expert Comment

ID: 7115842
# ozo's working suggestion improved:
(cat ${CONFIG}/plugin-cfg.xml)|sed 's/Transport Hostname="'${HOSTNAME}'"/Transport Hostname="'${IP}'"/g' > ${CONFIG}/plugin.xml

Author Comment

ID: 7116183
Worked like a charm!  Thanks.

Featured Post

Are your AD admin tools letting you down?

Managing Active Directory can get complicated.  Often, the native tools for managing AD are just not up to the task.  The largest Active Directory installations in the world have relied on one tool to manage their day-to-day administration tasks: Hyena. Start your trial today.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

When you do backups in the Solaris Operating System, the file system must be inactive. Otherwise, the output may be inconsistent. A file system is inactive when it's unmounted or it's write-locked by the operating system. Although the fssnap utility…
Let's say you need to move the data of a file system from one partition to another. This generally involves dismounting the file system, backing it up to tapes, and restoring it to a new partition. You may also copy the file system from one place to…
Learn how to navigate the file tree with the shell. Use pwd to print the current working directory: Use ls to list a directory's contents: Use cd to change to a new directory: Use wildcards instead of typing out long directory names: Use ../ to move…
The purpose of this video is to demonstrate how to set up the WordPress backend so that each page automatically generates a Mailchimp signup form in the sidebar. This will be demonstrated using a Windows 8 PC. Tools Used are Photoshop, Awesome…

770 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question