The UNIX and Linux Forums  

Go Back   The UNIX and Linux Forums > OS Specific Forums > Linux
Google UNIX.COM


Linux RedHat, Ubuntu, SUSE, Fedora, Debian, Mandriva, Slackware, Gentoo linux, PCLinuxOS. All Linux questions here!

More UNIX and Linux Forum Topics You Might Find Helpful
Thread Thread Starter Forum Replies Last Post
whole word substitution in SED gikay01 Shell Programming and Scripting 7 07-16-2008 01:51 PM
Unix Variable Reference and Substitution mugsymark Shell Programming and Scripting 8 06-16-2008 02:24 AM
Last word substitution capri_drm Linux 4 06-10-2008 03:19 AM
How to use sed substitution using a $variable for a line containing a word Sangal-Arun Shell Programming and Scripting 4 08-07-2007 04:09 PM
word substitution in csh oprestol Shell Programming and Scripting 1 09-15-2005 08:15 PM

Reply
 
Submit Tools LinkBack Thread Tools Display Modes
  #1 (permalink)  
Old 05-07-2008
Registered User
 

Join Date: May 2008
Location: St. Louis
Posts: 70
Stumble this Post!
word substitution in unix

Hi I am trying to substitute 2 words on the same line with _S02 as suffix. Like this .

IN "TSOPS09" INDEX IN "TSOPIX09" ;

to

IN "TSOPS09_S02" INDEX IN "TSOPIX09_S02" ;

i used the following code to make the change , it works fine for first substitution not the second one .

TBLSP_NM=` cat db2look_FACT_PHYSICIAN.ddl | grep -i TSOP | awk '{print $2}' | cut -d '"' -f 2 `
echo $TBLSP_NM
sed -e 's/'${TBLSP_NM}'/'${TBLSP_NM}'_S02/g' db2look_FACT_PHYSICIAN.ddl

the output comes as

IN "TSOPS09_S02" INDEX IN "TSOPIX09" ;


Any help is appreciated !
Reply With Quote
Forum Sponsor
  #2 (permalink)  
Old 05-07-2008
vgersh99's Avatar
Moderator
 

Join Date: Feb 2005
Location: Boston, MA
Posts: 3,002
Stumble this Post!
Code:
echo 'IN "TSOPS09" INDEX IN "TSOPIX09" ; ' | sed 's/"\([^"][^"]*\)"/"\1_S02"/g'
Reply With Quote
  #3 (permalink)  
Old 05-07-2008
robotronic's Avatar
Can I play with madness?
 

Join Date: Apr 2002
Location: Italy
Posts: 370
Stumble this Post!
vgersh preceded me, anyway another one:

Code:
sed 's/\(TSOP[^"]*\)/\1_S02/g' db2look_FACT_PHYSICIAN.ddl
Reply With Quote
  #4 (permalink)  
Old 05-07-2008
Registered User
 

Join Date: May 2008
Location: St. Louis
Posts: 70
Stumble this Post!
Thanks a lot ! You guys rock !!!
Reply With Quote
  #5 (permalink)  
Old 05-07-2008
Registered User
 

Join Date: May 2008
Location: St. Louis
Posts: 70
Stumble this Post!
Hi,
I ahve next question . I have script which gets info from db2 engine.
The script is

cat sample_substitute.sh
CNTR_NM=`db2 -x "select CONTAINER_NAME ,usable_pages from table( SNAPSHOT_CONTAINER('TST103',-1)) as SNAPSHOT_CONTAINER, syscat.tablespaces where
tablespace_name = tbspace and tbspacetype = 'D' and tbspace='TSOPS06'" `
echo ${CNTR_NM}

The output is like this

/dmpath/dmtiadm1/db2fs1p00/tsops06 2128

But I am trying to get the output like this

'/dmpath/dmtiadm1/db2fs1p00/tsops06' 2128

i.e. the string inside the single quote.

Thanks again in advance !
Reply With Quote
  #6 (permalink)  
Old 05-08-2008
robotronic's Avatar
Can I play with madness?
 

Join Date: Apr 2002
Location: Italy
Posts: 370
Stumble this Post!
You may use a thing like:

Code:
echo "${CNTR_NM}" | sed "s/\([^ ]*\)/'\1'/1"
or

Code:
echo "${CNTR_NM}" | awk '{ printf("\047%s\047 %s\n", $1, $2) }'

On Solaris, use nawk instead of awk.
Reply With Quote
  #7 (permalink)  
Old 05-14-2008
Registered User
 

Join Date: May 2008
Location: St. Louis
Posts: 70
Stumble this Post!
i started a new thread for next problem

Last edited by capri_drm; 05-14-2008 at 12:28 PM. Reason: starting a new thread
Reply With Quote
Google The UNIX and Linux Forums
Reply

Tags
solaris

Thread Tools
Display Modes




All times are GMT -7. The time now is 06:08 PM.


Powered by: vBulletin, Copyright ©2000 - 2006, Jelsoft Enterprises Limited.
The UNIX and Linux Forums Content Copyright ©1993-2008 The CEP Blog All Rights Reserved -Ad Management by RedTyger Visit The Global Fact Book

Content Relevant URLs by vBSEO 3.2.0