ファイル内の最初の閉じ括弧とそれに対応する閉じ括弧の間のテキストを抽出しようとしています。
入力
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)
;
期待される出力
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
テキストを抽出する必要がある場所から場所までの行番号と列番号を取得するために次のスクリプトを作成しましたが、実際に出力を印刷することはできません。どんな提案でも大歓迎です。ありがとう
#!/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