Below is the i/p of my file ,first read the 1st line of the file 'i.e:SET DBASE_TARGETTABLE TO 'XX_SW' and replace with
SET DBASE_TARGETTABLE TO 'XX_tW and read the last line 'i.e : .SET TARGETTABLE TO 'TABLE135044' and replce with i/p file name (If my i/p file name is mm_customer_info.txt ,replace with 'TABLE135044' TO 'customer_info').Any help should be appreciated
file.txt
.LOGON dn/up_load1,messwh08;
.SET DBASE_TARGETTABLE TO 'XX_SW';
.SET DBASE_WORKTABLE TO 'XX_SW';
.SET DBASE_ETTABLE TO 'XX_SW';
.SET DBASE_UVTABLE TO 'XX_SW';
.SET TARGETTABLE TO 'TABLE135044';
.BEGIN IMPORT MLOAD
Expecting o/p
.LOGON dn/up_load1,messwh08;
.SET DBASE_TARGETTABLE TO 'XX_tW';
.SET DBASE_WORKTABLE TO 'XX_SW';
.SET DBASE_ETTABLE TO 'XX_SW';
.SET DBASE_UVTABLE TO 'XX_SW';
.SET TARGETTABLE TO 'cutomer_info';
The last line which is highlighted is dynamic value ,i need to pass i/p files as parameter and replace that value with my i/p file (If my i/p file name is mm_customer_info.txt ,replace with 'TABLE135044' TO 'customer_info')
.SET TARGETTABLE TO 'TABLE135044';
The filename mm_customer_info.txt is passing as a parameter in your script but how do you get the names of the variables: TABLE135044 and customer_info?
.LOGTABLE LOGTABLE135044;
.LOGON r01gtdn/up_load1,messwh08;
.SET DBASE_TARGETTABLE TO 'DP_SBDW';
.SET DBASE_WORKTABLE TO 'DP_SBDW';
.SET DBASE_ETTABLE TO 'DP_SBDW';
.SET DBASE_UVTABLE TO 'DP_SBDW';
.SET TARGETTABLE TO 'TABLE135044';
.BEGIN IMPORT MLOAD
I wrote small script to replace TABLE135044 with input file name but its not working but it creates filename with new
You need to use double quotes around the sed script in order for the shell to interpolate the values of the variables $col and $col1; single quotes prevent interpolation. Anyhow, using awk to identify a replacement string for sed seems misdirected, when awk can do the replacement all by itself.