Help with formatting


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Help with formatting
# 8  
Old 09-27-2014
Hello disedorgue, one last question...

For the same input, if I want multiple comments one with (COL1, COL2) and also the same comment for individual columns, how can I do it.

For example, for the same input, I want my output like this.

Code:
COMMENT ON TABLE DATABASE.TABLE_NM AS 'PK=,COL1,COL2; ';
COMMENT ON TABLE DATABASE.TABLE_NM AS 'PK=,COL1; ';
COMMENT ON TABLE DATABASE.TABLE_NM AS 'PK=,COL2; ';

Thanks,
V
# 9  
Old 09-27-2014
As:
Code:
TBL_DB="DATABASE"
awk -v VAL_DB="${TBL_DB}" '/CREATE UNIQUE INDEX/,/)/ {
if(/CREATE UNIQUE INDEX|\(/) {
  next
}
if (!/\)/){
  A=A $NF
}
else{
  X=$NF
  sub(/;/,"",X)
  print "COMMENT ON TABLE "VAL_DB"." X " AS \047PK=," A "; \047;"
  split(A,B,",")
  for (i in B){
   print "COMMENT ON TABLE "VAL_DB"." X " AS \047PK=," B[i] "; \047;"
  }
}
}' input_index.txt > cmnt1.txt

Regards.
This User Gave Thanks to disedorgue For This Post:
# 10  
Old 09-27-2014
Hello Disedorgue, I tried the similar approach for one other script and couldn't able to get the desired result. Could you please check this.

Input:
Code:
CREATE  TABLE TBL_NM
(

        COL1               DECIMAL(18,0) NOT NULL,
        COL2               CHAR(2) NOT NULL ,
        COL3               CHAR(5) NOT NULL ,
        COL4               SMALLINT NOT NULL
);


Desired Output:
Code:
REPLACE VIEW DB_NM.TBL_NM 
AS
COL1,
COL2,
COL3,
COL4
FROM DBASE.TBL_NM;

Please note in the output, DB_NM and DBASE are both different databases.
Also, in the input, there is a blank line after '('.

Thanks,
V
# 11  
Old 09-27-2014
Hi,
Approach is different because the problem is different:
Code:
DBASE="FOO"
DB_NM="BAR"
awk -v VAR1="${DB_NM}" -v VAR2="${DBASE}" '/CREATE *TABLE/,/);/ {
 switch ($0) {
  case /CREATE *TABLE/:
   X=$3
   print "REPLACE VIEW "VAR1"."$3
   break
  case /^\(/:
   print "AS"
   break
  case /^$/:
   break
  case /^\);/:
   print "FROM "VAR2"."X";"
   break
  default:
   gsub(/[^,]/,"",$NF)
   print $1$NF
 }
}' file.txt

Regards.

Last edited by disedorgue; 09-27-2014 at 08:23 PM.. Reason: Precision: approach switch...case is gawk extension
# 12  
Old 09-27-2014
Hello Disedorgue,
I am getting the following error while I run the above statements

Code:
awk: cmd. line:2:  switch ($0) {
awk: cmd. line:2:              ^ syntax error
awk: cmd. line:4:   case /CREATE *TABLE/:
awk: cmd. line:4:                       ^ syntax error
awk: cmd. line:7:   case /^\(/:
awk: cmd. line:7:         ^ syntax error
awk: cmd. line:7:   case /^\(/:
awk: cmd. line:7:          ^ backslash not last character on line

Thanks,
V
# 13  
Old 09-28-2014
Hmmm, it works fine at home, but i use gawk.
So, here an alternative without "switch...case":
Code:
DBASE="FOO"
DB_NM="BAR"
awk -v VAR1="${DB_NM}" -v VAR2="${DBASE}" '/CREATE *TABLE/,/);/ {
  if (/CREATE *TABLE/){
   X=$3
   print "REPLACE VIEW "VAR1"."$3
   next
  }
  if (/^\(/){
   print "AS"
   next
  }
  if (/^$/){
   next
  }
  if (/^\);/){
   print "FROM "VAR2"."X";"
   next
  }
   gsub(/[^,]/,"",$NF)
   print $1$NF
}' file.txt

Regards.
This User Gave Thanks to disedorgue For This Post:
# 14  
Old 09-28-2014
Thank you so much disedorgue.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Formatting

Good day All, I have requirement where my input data looks like below ] Message5 Expecting Output as 04/MAR/2104 ||| 23:15:45 ||| servername ||| NOTIFICATION |||message1||||||userId|||||| Message5 I could not use space delimiter as in the messages I would be having them as... (2 Replies)
Discussion started by: Tomlight
2 Replies

2. Shell Programming and Scripting

Formatting Help

Hi Guys, i have report that runs every 10 min and send the report of failed jobs to my mail. Currently i am using a command like this to send mail. mailx -t -s "FAILURE JOBS IN HYDRA $temp_date" addressee@domain.com < temp_file5 But i am getting mail in this format ....... (4 Replies)
Discussion started by: gkrish
4 Replies

3. Shell Programming and Scripting

help formatting

I need to format a txt file and convert it in CSV. Any "future" column is separated by a newline. FROM: XS1 1.43294 0.0 XS2 1.21824 0.0 TO: XS1,XS2 (2 Replies)
Discussion started by: alfreale
2 Replies

4. Shell Programming and Scripting

formatting of df -k

Hello, I am developing a platform Independant tool that should work for all major unix flavors outlined in this forum(Solaris,Linux, AIX, HPUX, SCO,BSD) Therefore, in order to cover all types of user community, I have deliberately posted the same message on every forum. Please do not think... (9 Replies)
Discussion started by: darsh123
9 Replies

5. Shell Programming and Scripting

Formatting

Is there a way to make a 2 column output out of the following : 1 2 3 4 5 6 Output : 1 2 3 4 5 6 Thanks, Prasanna (3 Replies)
Discussion started by: prasanna1157
3 Replies

6. Shell Programming and Scripting

formatting

I have file with different columns for ex. contents of file "txt" NAME AGE MARKS HARRY 23 89 TOM 12 67 BOB 23 11 and you see its not formatted.Now, I need the file "txt" to be formatted like COLUMN1 COLUMN2 COLUMN3 NAME AGE ... (3 Replies)
Discussion started by: vijay_0209
3 Replies

7. Shell Programming and Scripting

Formatting

I have next part of script: for i in $LIST do echo "`date +"%H:%M:%S"` Converting $i ..."; mysql -uroot some -sABe "ALTER TABLE $i ENGINE=$ENGINE"; done I want to get following output formatting: "OK" must be one under another :) ... (3 Replies)
Discussion started by: mirusnet
3 Replies

8. UNIX for Dummies Questions & Answers

formatting

Hi Again Guys , Please i installed linux RH 6.1 on Toshiba , 10G , RAM=128 , 600 MHZ . After i installed linux i got many error messages , seems it was not installed correctly , also when i finished installation it did not ask me for the 2nd installation CD , and when i logged as root , i... (5 Replies)
Discussion started by: tamemi
5 Replies

9. UNIX for Dummies Questions & Answers

formatting

is it possible to format a powerbook g4 mac? like totally erase the HD then pop in the Mac OS cd and it will boot up an install like windows or any linux? (5 Replies)
Discussion started by: xeron
5 Replies

10. UNIX for Dummies Questions & Answers

formatting

I've been asking on IRC channels but no one answers me, I need to format my hard drive, normally it's just format c: but c doesn't exist, how do I format when I have linux mandrake installed. Please reply to this quickly, I'm kinda in a rush :( (1 Reply)
Discussion started by: darryll777
1 Replies
Login or Register to Ask a Question