[2 days left] What’s wrong with your cloud strategy? Learn why multicloud solutions matter with Nimble Storage.Register Now


SED Question

Posted on 2002-06-27
Medium Priority
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
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 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 genPlugin.sh
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}/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)  (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

Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

LVL 84

Accepted Solution

ozo earned 400 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

Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

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

Question has a verified solution.

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

Installing FreeBSD… FreeBSD is a darling of an operating system. The stability and usability make it a clear choice for servers and desktops (for the cunning). Savvy?  The Ports collection makes available every popular FOSS application and packag…
I have been running these systems for a few years now and I am just very happy with them.   I just wanted to share the manual that I have created for upgrades and other things.  Oooh yes! FreeBSD makes me happy (as a server), no maintenance and I al…
Learn how to get help with Linux/Unix bash shell commands. Use help to read help documents for built in bash shell commands.: Use man to interface with the online reference manuals for shell commands.: Use man to search man pages for unknown command…
This video shows how to set up a shell script to accept a positional parameter when called, pass that to a SQL script, accept the output from the statement back and then manipulate it in the Shell.
Suggested Courses

656 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