I am tring to extract text between the first and its matching closing bracket in a file.
Input
CREATE MULTISET TABLE ABCD.EFGH, NO FALLBACK, NO BEFORE JOURNAL, NO AFTER JOURNAL, CHECKSUM = Default ( ABCK_SK INTEGER NOT NULL, PRQ VARCHAR(1024) NOT NULL, RST DECIMAL (12,4) NOT NULL, LMN CHAR(1) NOT NULL, OPQ DATE NOT NULL, PQRS DATE NOT NULL, TUV INTEGER NOT NULL, WXY INTEGER NOT NULL ) UNIQUE PRIMARY INDEX ABCK_PI (ABCK_SK) ;
Expected Output
ABCK_SK INTEGER NOT NULL, PRQ VARCHAR(1024) NOT NULL, RST DECIMAL (12,4) NOT NULL, LMN CHAR(1) NOT NULL, OPQ DATE NOT NULL, PQRS DATE NOT NULL, TUV INTEGER NOT NULL, WXY INTEGER NOT NULL
I have written the following script for getting the line number and column number from where to where the text needs to be extracted, but i not able to actually print the output. Any suggetions would be greatly appreciated. Thanks
#!/bin/sh nawk 'BEGIN{startln=0;j=0;i=0;endln=0;startchr=0;endchr=0} { i=1; while( i<=NF ) { if($i=="(" && startln==0 ){startchr=i; startln=NR} if($i==")"){j=j-1} if($i=="("){j=j+1} if(j==0){endchr=i;endln=NR;break} i=i+1}} END{ print "startln="startln " startchr="startchr " endln="endln " endchr="endchr}' $1