我正在提取文件中第一個和其匹配右括號之間的文本。awk腳本 - 在括號之間提取文本
輸入
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
這似乎是對我完美的工作..我只需要將其嵌入我的主要scrpt,並確保它不會在我給它的不同類型的輸入失敗..非常感謝!從昨天早上起,這讓我徹底失敗了.. – user973363 2012-07-26 18:37:44