Shell script using loop


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Shell script using loop
# 8  
Old 07-09-2010
Hi Aigles,
Thanks for the reply.
still giving the same error.

Please help me with this.
# 9  
Old 07-09-2010
Have you tried to use /usr/xpg4/bin/awk or gawk ?

A commented and revised version of the script :
Code:
awk '

#
# Input file #2
#

NR==FNR {                               # Select records from input file #1
   tbl[$1]++;                           #   Memorize table in in array tbl
   next;                                #   Proceed next record
}

#
# Input file #2
#

/ALTER TABLE/ {                         # Select ALTER TABLE records
   tbl_name = $3;                       #   Table name
   getcols = (tbl_name in tbl ? 1 : 0); #   Set getcols flag if table
                                        #   + found in array tbl
   next;                                #   Proceed next record
}

! getcols {                             # Select record if getcols flag not
                                        # + set to 1
   next ;                               #   Proceed next record
}

/^ADD/,/;[[:space:]]*$/ {               # Select ADD records (from ADD to
                                        # + record endig with ";"
   f = ($1 ~ /^ADD/ ? 3 : 1);           #   IF ADD record, column name is field 3
                                        #   + otherwise field 1;
                                        #   + column format is field f+1
   sub(/).*/, ")", $(f+1));             #   Remove chars after ) ending column def
   printf "%-12s %-12s %s\n", tbl_name, $f, $(f+1); #  Output table name,
                                                    #  + column name and format
}

' alisha.nam alisha.tmp

"name" file (alisha.nam):
Code:
tbla
tblc

"temp" file (alisha.tmp) :
Code:
ALTER TABLE tbla
ADD  ( cola1  VARCHAR2(11),
       cola2  VARCHAR2(12)  );

ALTER TABLE tblb
ADD  ( colb1  VARCHAR2(21),
       colb2  VARCHAR2(22)  );

ALTER TABLE tblc
ADD  ( colc1  VARCHAR2(31),
       colc2  VARCHAR2(32),
       colc3  VARCHAR2(32)  );

Output:
Code:
tbla         cola1        VARCHAR2(11)
tbla         cola2        VARCHAR2(12)
tblc         colc1        VARCHAR2(31)
tblc         colc2        VARCHAR2(32)
tblc         colc3        VARCHAR2(32)

Jean-Pierre.
# 10  
Old 07-09-2010
No i have not tried use /usr/xpg4/bin/awk or gawk till now.
i don't no how to use these applications.
# 11  
Old 07-09-2010
In the first statement, replace awk with nawk, gawk or /usr/xpg4/bin/awk :
Code:
/usr/xpg4/bin/awk '

#
# Input file #2
#

NR==FNR {                               # Select records from input file #1

Jean-Pierre.
# 12  
Old 07-09-2010
hi Aigles,
sorry for troubling you.
but still the code is bailing out near line containing "getcols".
# 13  
Old 07-09-2010
Try to replace
Code:
   getcols = (tbl_name in tbl ? 1 : 0); #   Set getcols flag if table
                                        #   + found in array tbl
   next;                                #   Proceed next record
}

! getcols {                             # Select record if getcols flag not
                                        # + set to 1

with
Code:
   if (tbl_name in tbl)                 #   if table found in array tbl
        getcols = 1                     #        set hetcols flag to 1
   else getcols = 0;                    #   else set getcols flag to 0
   next;                                #   Proceed next record
}

getcols != 1 {                          # Select record if getcols flag not
                                        # + set to 1

Jean-Pierre.
# 14  
Old 07-09-2010
hi
i have used /usr/xpg4/bin/awk and nawk
in both cases getting error.

---------- Post updated at 08:00 AM ---------- Previous update was at 07:53 AM ----------

hi i have used your code starting with /usr/xpg4/bin/awk its giving me syntax error near lines.

Code:
/usr/xpg4/bin/awk: file "[command line]": line 16: syntax error  Context is:
>>>
>>>
>>>     next ;
>>>     /^ADD/, <<<


Last edited by Scott; 07-09-2010 at 10:30 AM.. Reason: Code tags, PLEASE!
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Shell script use two variable in for loop

I want to create a shell script to add a user and modify its comment field mentioned in a file. 1. File value:- username comment field value xyz123 xyztesting abc123 abctesting def123 deftesting 2. i am using below loop to create user... (2 Replies)
Discussion started by: Anil
2 Replies

2. Shell Programming and Scripting

Speed up the loop in shell script

Hi I have written a shell script which will test 300 to 500 IPs to find which are pinging and which are not pinging. the script which give output as 10.x.x.x is pining 10.x.x.x. is not pining - - - 10.x.x.x is pining like above. But, this script is taking... (6 Replies)
Discussion started by: kumar85shiv
6 Replies

3. Shell Programming and Scripting

Loop in shell script

Hi Friends, I have a file. the content is as below: file1: /A/B/C/abc.txt 2013-07-28 13:50:00,2013-07-31 01:00:00,5,710 /A/B/C/xyz.txt 2011-09-21 18:30:00,2013-07-30 06:15:00,15,65135 2009-11-09 18:00:00,2011-09-02 09:00:00,5,12345 2013-07-28 13:50:00,2013-07-31 01:00:00,5,710 ... (2 Replies)
Discussion started by: vsachan
2 Replies

4. Shell Programming and Scripting

Help with the For loop shell script

Hi, I have multiple files in a directory. Each file will have a header.I have to check if any of the files has 0 rows other than the header then I have to delete the files. Here “ Empty file” in my case means a file has header information but no data. I have to delete such files. If the file... (2 Replies)
Discussion started by: ganesnar
2 Replies

5. Shell Programming and Scripting

Avoiding For Loop in Shell Script

I am looking to a solution to the following problem. I have a very large file that looks something like this: Each group of three numbers on each line are three probabilities that sum to one. I want to output the maximum for each group of three. So desired output would be: or... (6 Replies)
Discussion started by: hydrabane
6 Replies

6. Shell Programming and Scripting

Help with IF statement with loop Shell Script

Hello I am very new to shell and I bought some books and trying to learn it. I started trying to write a script that will take a number and count it down to 1 with commas in between. This number can only be one argument. If lower than one or higher than one argument it sends an error message. ... (4 Replies)
Discussion started by: zero3ree
4 Replies

7. Shell Programming and Scripting

while loop problem in c shell script

Hi all, i write a script c shell set i = 1 while ( $i <= $#array ) echo "$array" @ i++ end i want to set it to i = i +2 in that statement . Can anybody help me? ---------- Post updated at 02:46 PM ---------- Previous update was at 02:35 PM ---------- anybody not how to solve it??? (2 Replies)
Discussion started by: proghack
2 Replies

8. Shell Programming and Scripting

Loop in shell script

Dear experts, i am quite new to shell script please any one can help me in this regard i would like write a script which takes input in the form >./Test.sh a,10,b,20,c,30... in this way i can give input in any number which is not constant in the end through loop i want to... (3 Replies)
Discussion started by: vin_pll
3 Replies

9. Shell Programming and Scripting

Help with loop in a shell script

I just want to write a little script, that reads the lines from a file, echos somthing in a new tmp.file and then do some commands whith the tmp.files. while read -r line do echo "TEST=" > tmp.$$ echo "$line" >> tmp.$$ any_command < tmp.$$ done < $INPUTFILE But I think I have to... (2 Replies)
Discussion started by: elifchen
2 Replies

10. Shell Programming and Scripting

If then else loop in Shell script

Hi Following is the code . When I give input as Bangalore,its dospalying Welcome to Hitech City. But say , if I select Delhi or US, its not displaying the corresponding message. Its still says Welcome to Hitech City. Seems that it not entering in the elif part. Please suggest. #!... (4 Replies)
Discussion started by: pankajkrmishra
4 Replies
Login or Register to Ask a Question