sed to fix view names

I have a ddl file which have lots of view in it. I want to replace all the existing views with VW_< view name> . I am prefixing VW to existing view name .

For example, In old file grep on view is like this

CREATE VIEW OPSDM001.PROVIDER_MBR_PRI ( MBR_PRI_PROV_SYS_ID, MBR_PRI_COS_PROV_SPCL_CD,
CREATE VIEW OPSDM001.PROVIDER_REF ( REF_PROV_SYS_ID, REF_COS_PROV_SPCL_CD,
CREATE VIEW OPSDM001.PROVIDER_SRVC ( SRVC_PROV_SYS_ID, SRVC_COS_PROV_SPCL_CD,

but after editing , I want the result like this

CREATE VIEW OPSDM001.VW_PROVIDER_MBR_PRI ( MBR_PRI_PROV_SYS_ID, MBR_PRI_COS_PROV_SPCL_CD,
CREATE VIEW OPSDM001.VW_PROVIDER_REF ( REF_PROV_SYS_ID, REF_COS_PROV_SPCL_CD,
CREATE VIEW OPSDM001.VW_PROVIDER_SRVC ( SRVC_PROV_SYS_ID, SRVC_COS_PROV_SPCL_CD,

It could take care of any number of view occurance .
Any help is appreciated ,
Thanks in advance ,

Something like this should do the job:

sed 's/\(.*\.\)\(.*\)/\1VW_\2/' file > newfile

Regards

Thanks Frankiln but its making VW_ changes to all the table names too in the file. I need VW_ only for view names.

If my original file is like this ,

create table opsdm001.dim_date
create view opsdm001.dim_date_view

then i want to change it to

create table opsdm001.dim_date
create view opsdm001.VW_dim_date_view

but with your suggestion, the table name is also prefixed with VW_

Thanks again ,

Try this:

sed '/^create view/s/\(.*\.\)\(.*\)/\1VW_\2/' file > newfile

Regards

Sorry Franklin, that didn't work at all .

Franklin,
My bad ! You were right. It worked. I was doing change for create view as lower case while in my file its all uppercase .

Thanks a lot !!!

Daya

thread closed