script help


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting script help
# 1  
Old 08-12-2008
script help

Hi

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';

.BEGIN IMPORT MLOAD

Thanks,
MR
# 2  
Old 08-12-2008
Have you tried a simple search-and-replace using sed?
# 3  
Old 08-12-2008
Hi

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';

Thanks
MR
# 4  
Old 08-12-2008
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?

Regards
# 5  
Old 08-12-2008
Hi

soryy for wrong info

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

a2.sh
====
file=$1
col=`awk NR==7 $1 |tr " " "\n" |tail -1`
echo "$col"
col1=`basename $1 |tr " " "\n" |tail -1`
echo "$col1"
sed -e 's/$col/$col1/g' $1 >$1.new
~


'TABLE135044';
Customer_info

a2.sh Customer_info

Thanks,
MR
# 6  
Old 08-12-2008
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.

Code:
nawk -v IFS="'" -v basename="`basename "$1"`" '
  /SET DBASE_TARGETTABLE/ { $2 = "XX_tW" }
  /SET TARGETTABLE/ { $2 = basename }
1' "$1"

# 7  
Old 08-12-2008
Hi Era,
Thanks a lot.Its working fine

Thanks
MR
Login or Register to Ask a Question

Previous Thread | Next Thread

5 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to block first bash script until second bash script script launches web server/site?

I'm new to utilities like socat and netcat and I'm not clear if they will do what I need. I have a "compileDeployStartWebServer.sh" script and a "StartBrowser.sh" script that are started by emacs/elisp at the same time in two different processes. I'm using Cygwin bash on Windows 10. My... (3 Replies)
Discussion started by: siegfried
3 Replies

2. Shell Programming and Scripting

Shell script works fine as a standalone script but not as part of a bigger script

Hello all, I am facing a weird issue while executing a code below - #!/bin/bash cd /wload/baot/home/baotasa0/sandboxes_finance/ext_ukba_bde/pset sh UKBA_publish.sh UKBA 28082015 3 if then echo "Param file conversion for all the areas are completed, please check in your home directory"... (2 Replies)
Discussion started by: ektubbe
2 Replies

3. UNIX for Dummies Questions & Answers

Calling a script from master script to get value from called script

I am trying to call a script(callingscript.sh) from a master script(masterscript.sh) to get string type value from calling script to master script. I have used scripts mentioned below. #masterscript.sh ./callingscript.sh echo $fileExist #callingscript.sh echo "The script is called"... (2 Replies)
Discussion started by: Raj Roy
2 Replies

4. Shell Programming and Scripting

Script will keep checking running status of another script and also restart called script at night

I am using blow script :-- #!/bin/bash FIND=$(ps -elf | grep "snmp_trap.sh" | grep -v grep) #check snmp_trap.sh is running or not if then # echo "process found" exit 0; else echo "process not found" exec /home/Ketan_r /snmp_trap.sh 2>&1 & disown -h ... (1 Reply)
Discussion started by: ketanraut
1 Replies

5. Shell Programming and Scripting

create a shell script that calls another script and and an awk script

Hi guys I have a shell script that executes sql statemets and sends the output to a file.the script takes in parameters executes sql and sends the result to an output file. #!/bin/sh echo " $2 $3 $4 $5 $6 $7 isql -w400 -U$2 -S$5 -P$3 << xxx use $4 go print"**Changes to the table... (0 Replies)
Discussion started by: magikminox
0 Replies
Login or Register to Ask a Question