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
Pattern Replacement palash2k UNIX for Dummies Questions & Answers 12 04-26-2008 09:05 AM
AWK pattern matching, first and last smb_uk Shell Programming and Scripting 10 12-27-2007 06:03 PM
Pattern Matching op4_u Shell Programming and Scripting 10 07-17-2006 09:30 PM
pattern matching larryase UNIX for Dummies Questions & Answers 3 11-22-2004 03:54 PM
Pattern Matching danhodges99 UNIX for Dummies Questions & Answers 2 02-27-2003 12:03 PM

Reply
 
Submit Tools LinkBack Thread Tools Display Modes
  #1  
Old 05-29-2008
Registered User
 

Join Date: May 2008
Location: St. Louis
Posts: 70
matching pattern and replacement

Hi
I am trying to look for a view name in create view statement and then replace this view name with VW_ in grants line in my ddl file .

cat dim_provider.sql | grep -i "create view" | while read f1 f2 f3 f4 f5 f6 f7 f8 f9
do
new_vw=` echo "$f3" | cut -d "." -f2 `
sed -e 's/${new_vw}/VW_${new_vw}/g' dim_provider.sql > dim_provider.sql1
done

The sql file is

#grep -i grant dim_provider.sql
GRANT SELECT ON TABLE OPSDM002.PROVIDER_MBR_PRI TO GROUP DSDBDEV ;
GRANT SELECT ON TABLE OPSDM002.PROVIDER_MBR_PRI TO GROUP UHCDMTST ;
GRANT SELECT ON TABLE OPSDM002.PROVIDER_MBR_PRI TO GROUP CLOSEL01 ;

I want the change to be

GRANT SELECT ON TABLE OPSDM002.VW_PROVIDER_MBR_PRI TO GROUP DSDBDEV ;
GRANT SELECT ON TABLE OPSDM002.VW_PROVIDER_MBR_PRI TO GROUP UHCDMTST ;
GRANT SELECT ON TABLE OPSDM002.VW_PROVIDER_MBR_PRI TO GROUP CLOSEL01 ;

I don't know what needs to be done now .
Thanks
Reply With Quote
Forum Sponsor
  #2  
Old 05-29-2008
Registered User
 

Join Date: May 2008
Location: St. Louis
Posts: 70
Well , I modified it to better one ( I guess ) but I don't get the output file as desired one .

The updated code is

cat dim_provider.sql | grep -i "create view" | while read f1 f2 f3 f4 f5 f6 f7 f8 f9
do
new_vw=` echo "$f3" | cut -d "." -f2 `
echo "${new_vw}"
cat dim_provider.sql | grep -i GRANT | grep -i ${new_vw} | while read f1 f2 f3 f4 f5 f6 f7 f8 f9
do
sed -e s/${new_vw}/VW_${new_vw}/g dim_provider.sql > dim_provider.sql1
done
done

and sh -x of shl is

#sh -x add_VW_grants.shl
+ [[ -n 1 ]]
+ return
+ cat dim_provider.sql
+ grep -i create view
+ read f1 f2 f3 f4 f5 f6 f7 f8 f9
+ + echo OPSDM002.PROVIDER_MBR_PRI
+ cut -d . -f2
new_vw=PROVIDER_MBR_PRI
+ echo PROVIDER_MBR_PRI
PROVIDER_MBR_PRI
+ cat dim_provider.sql
+ grep -i GRANT
+ grep -i PROVIDER_MBR_PRI
+ read f1 f2 f3 f4 f5 f6 f7 f8 f9
+ sed -e s/PROVIDER_MBR_PRI/VW_PROVIDER_MBR_PRI/g dim_provider.sql
+ 1> dim_provider.sql1
+ read f1 f2 f3 f4 f5 f6 f7 f8 f9
+ sed -e s/PROVIDER_MBR_PRI/VW_PROVIDER_MBR_PRI/g dim_provider.sql
+ 1> dim_provider.sql1
+ read f1 f2 f3 f4 f5 f6 f7 f8 f9
+ sed -e s/PROVIDER_MBR_PRI/VW_PROVIDER_MBR_PRI/g dim_provider.sql
+ 1> dim_provider.sql1
+ read f1 f2 f3 f4 f5 f6 f7 f8 f9
+ sed -e s/PROVIDER_MBR_PRI/VW_PROVIDER_MBR_PRI/g dim_provider.sql
+ 1> dim_provider.sql1
+ read f1 f2 f3 f4 f5 f6 f7 f8 f9
+ read f1 f2 f3 f4 f5 f6 f7 f8 f9
+ + echo OPSDM002.PROVIDER_REF
+ cut -d . -f2
new_vw=PROVIDER_REF
+ echo PROVIDER_REF
PROVIDER_REF
+ cat dim_provider.sql
+ grep -i GRANT
+ grep -i PROVIDER_REF
+ read f1 f2 f3 f4 f5 f6 f7 f8 f9
+ sed -e s/PROVIDER_REF/VW_PROVIDER_REF/g dim_provider.sql
+ 1> dim_provider.sql1
+ read f1 f2 f3 f4 f5 f6 f7 f8 f9
+ sed -e s/PROVIDER_REF/VW_PROVIDER_REF/g dim_provider.sql
+ 1> dim_provider.sql1
+ read f1 f2 f3 f4 f5 f6 f7 f8 f9
+ sed -e s/PROVIDER_REF/VW_PROVIDER_REF/g dim_provider.sql
+ 1> dim_provider.sql1
+ read f1 f2 f3 f4 f5 f6 f7 f8 f9
+ sed -e s/PROVIDER_REF/VW_PROVIDER_REF/g dim_provider.sql
+ 1> dim_provider.sql1
+ read f1 f2 f3 f4 f5 f6 f7 f8 f9
+ read f1 f2 f3 f4 f5 f6 f7 f8 f9
+ + echo OPSDM002.PROVIDER_SRVC
+ cut -d . -f2
new_vw=PROVIDER_SRVC
+ echo PROVIDER_SRVC
PROVIDER_SRVC
+ cat dim_provider.sql
+ grep -i GRANT
+ grep -i PROVIDER_SRVC
+ read f1 f2 f3 f4 f5 f6 f7 f8 f9
+ sed -e s/PROVIDER_SRVC/VW_PROVIDER_SRVC/g dim_provider.sql
+ 1> dim_provider.sql1
+ read f1 f2 f3 f4 f5 f6 f7 f8 f9
+ sed -e s/PROVIDER_SRVC/VW_PROVIDER_SRVC/g dim_provider.sql
+ 1> dim_provider.sql1
+ read f1 f2 f3 f4 f5 f6 f7 f8 f9
+ sed -e s/PROVIDER_SRVC/VW_PROVIDER_SRVC/g dim_provider.sql
+ 1> dim_provider.sql1
+ read f1 f2 f3 f4 f5 f6 f7 f8 f9
+ sed -e s/PROVIDER_SRVC/VW_PROVIDER_SRVC/g dim_provider.sql
+ 1> dim_provider.sql1
+ read f1 f2 f3 f4 f5 f6 f7 f8 f9
+ read f1 f2 f3 f4 f5 f6 f7 f8 f9
apsp8642:/dba_wk/dual_schema #

Any help is appreciated !
Reply With Quote
  #3  
Old 05-29-2008
rubin's Avatar
Registered User
 

Join Date: Nov 2007
Posts: 215
One way,

Code:
awk -F. -v OFS=. '/^[Gg][Rr][Aa][Nn][Tt]/{ $2="VW_"$2; print }'   filename

If you need only the lines with upper case GRANT then replace the search pattern with:

Code:
awk -F. -v OFS=. '/^GRANT/{ ... }' filename
Reply With Quote
  #4  
Old 05-30-2008
Registered User
 

Join Date: May 2008
Location: St. Louis
Posts: 70
Rubin ,
This will not solve what I need. Your code will change all the view names and table names whereever GRANT is there but I need to look for CREATE VIEW names and get the name of view and then change it to VW_ in the grant section .

Thanks
Reply With Quote
  #5  
Old 05-30-2008
Moderator
 

Join Date: Feb 2007
Posts: 2,200
Some lines of the file dim_provider.sql and the desired output would be helpful.

Regards
Reply With Quote
  #6  
Old 05-30-2008
Registered User
 

Join Date: May 2008
Location: St. Louis
Posts: 70
Here is the input file first :

#egrep -i "view|grant " dim_provider.sql

CREATE VIEW OPSDM002.PROVIDER_MBR_PRI ( MBR_PRI_PROV_SYS_ID, MBR_PRI_COS_PROV_SPCL_CD,
CREATE VIEW OPSDM002.PROVIDER_REF ( REF_PROV_SYS_ID, REF_COS_PROV_SPCL_CD,
CREATE VIEW OPSDM002.PROVIDER_SRVC ( SRVC_PROV_SYS_ID, SRVC_COS_PROV_SPCL_CD,
GRANT SELECT ON TABLE OPSDM002.PROVIDER_MBR_PRI TO GROUP DSDBDEV ;
GRANT SELECT ON TABLE OPSDM002.PROVIDER_MBR_PRI TO GROUP UHCDMTST ;
GRANT CONTROL ON TABLE OPSDM002.PROVIDER_REF TO USER SNIETER ;
GRANT CONTROL ON TABLE OPSDM002.PROVIDER_REF TO USER LTREXL1 ;
GRANT SELECT ON TABLE OPSDM002.PROVIDER_SRVC TO GROUP DSDBDEV ;
GRANT SELECT ON TABLE OPSDM002.PROVIDER_SRVC TO GROUP UHCDMTST ;


Here is the output file now :

#egrep -i "view|grant " dim_provider.sql1

CREATE VIEW OPSDM002.PROVIDER_MBR_PRI ( MBR_PRI_PROV_SYS_ID, MBR_PRI_COS_PROV_SPCL_CD,
CREATE VIEW OPSDM002.PROVIDER_REF ( REF_PROV_SYS_ID, REF_COS_PROV_SPCL_CD,
CREATE VIEW OPSDM002.VW_PROVIDER_SRVC ( SRVC_PROV_SYS_ID, SRVC_COS_PROV_SPCL_CD,
GRANT SELECT ON TABLE OPSDM002.PROVIDER_MBR_PRI TO GROUP DSDBDEV ;
GRANT SELECT ON TABLE OPSDM002.PROVIDER_MBR_PRI TO GROUP UHCDMTST ;
GRANT CONTROL ON TABLE OPSDM002.PROVIDER_REF TO USER SNIETER ;
GRANT CONTROL ON TABLE OPSDM002.PROVIDER_REF TO USER LTREXL1 ;
GRANT SELECT ON TABLE OPSDM002.VW_PROVIDER_SRVC TO GROUP DSDBDEV ;
GRANT SELECT ON TABLE OPSDM002.VW_PROVIDER_SRVC TO GROUP UHCDMTST ;


If you notice , the code made changes to the last name of the view . I don't know how it is working this way .
But sh -x show the correct output on screen .

Thanks
Reply With Quote
  #7  
Old 05-30-2008
Registered User
 

Join Date: May 2008
Location: St. Louis
Posts: 70
Sorry I forgot to post sh -x part of the code .

#sh -x add_VW_grants.shl
+ [[ -n 1 ]]
+ return
+ cat dim_provider.sql
+ grep -i create view
+ read f1 f2 f3 f4 f5 f6 f7 f8 f9
+ + echo OPSDM002.PROVIDER_MBR_PRI
+ cut -d . -f2
new_vw=PROVIDER_MBR_PRI
+ echo PROVIDER_MBR_PRI
PROVIDER_MBR_PRI
+ cat dim_provider.sql
+ grep -i GRANT
+ grep -i PROVIDER_MBR_PRI
+ read f1 f2 f3 f4 f5 f6 f7 f8 f9
+ sed -e s/PROVIDER_MBR_PRI/VW_PROVIDER_MBR_PRI/g dim_provider.sql
+ 1> dim_provider.sql1
+ read f1 f2 f3 f4 f5 f6 f7 f8 f9
+ sed -e s/PROVIDER_MBR_PRI/VW_PROVIDER_MBR_PRI/g dim_provider.sql
+ 1> dim_provider.sql1
+ read f1 f2 f3 f4 f5 f6 f7 f8 f9
+ read f1 f2 f3 f4 f5 f6 f7 f8 f9
+ + echo OPSDM002.PROVIDER_REF
+ cut -d . -f2
new_vw=PROVIDER_REF
+ echo PROVIDER_REF
PROVIDER_REF
+ cat dim_provider.sql
+ read f1 f2 f3 f4 f5 f6 f7 f8 f9
+ grep -i GRANT
+ grep -i PROVIDER_REF
+ sed -e s/PROVIDER_REF/VW_PROVIDER_REF/g dim_provider.sql
+ 1> dim_provider.sql1
+ read f1 f2 f3 f4 f5 f6 f7 f8 f9
+ sed -e s/PROVIDER_REF/VW_PROVIDER_REF/g dim_provider.sql
+ 1> dim_provider.sql1
+ read f1 f2 f3 f4 f5 f6 f7 f8 f9
+ read f1 f2 f3 f4 f5 f6 f7 f8 f9
+ + echo OPSDM002.PROVIDER_SRVC
+ cut -d . -f2
new_vw=PROVIDER_SRVC
+ echo PROVIDER_SRVC
PROVIDER_SRVC
+ cat dim_provider.sql
+ read f1 f2 f3 f4 f5 f6 f7 f8 f9
+ grep -i GRANT
+ grep -i PROVIDER_SRVC
+ sed -e s/PROVIDER_SRVC/VW_PROVIDER_SRVC/g dim_provider.sql
+ 1> dim_provider.sql1
+ read f1 f2 f3 f4 f5 f6 f7 f8 f9
+ sed -e s/PROVIDER_SRVC/VW_PROVIDER_SRVC/g dim_provider.sql
+ 1> dim_provider.sql1
+ read f1 f2 f3 f4 f5 f6 f7 f8 f9
+ read f1 f2 f3 f4 f5 f6 f7 f8 f9

Thanks,
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 08:46 AM.


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

Content Relevant URLs by vBSEO 3.2.0