特定の単語とその単語が存在するテーブルを使用して行全体を印刷するなどの出力が必要です。

特定の単語とその単語が存在するテーブルを使用して行全体を印刷するなどの出力が必要です。

たとえば、

CREATE TABLE SSS.ACTIVITY ( 
 OWNING_ID INTEGER NOT NULL , 
ACTIVITY_TYPE FOR COLUMN ACTIV00001 VARCHAR(50) CCSID 37 NOT NULL , 
CAMPAIGN_TYPE FOR COLUMN CAMPA00001 VARCHAR(50) CCSID 37 NOT NULL , 
COMPLETED TIMESTAMP NOT NULL ,                                             "COMMENT" VARCHAR(1000) CCSID 37 DEFAULT NULL , 
 FOLLOWUP_DATE FOR COLUMN FOLLO00001 DATE DEFAULT NULL ,  
; 

CREATE TABLE SSS.ADDRESS ( 
"ID" INTEGER NOT NULL , 
 CITY VARCHAR(30) CCSID 37 DEFAULT NULL , 
COUNTRY VARCHAR(30) CCSID 37 DEFAULT NULL , 
ADDRESSLINE1 FOR COLUMN ADDRE00001 VARCHAR(30) CCSID 37 DEFAULT NULL , 
ADDRESSLINE2 FOR COLUMN ADDRE00002 VARCHAR(30) CCSID 37 DEFAULT NULL , 
; 

上記の例には2つのテーブルがあります。表名とCCSIDという単語を含む行を印刷するなどの出力が必要です。

ベストアンサー1

この試み:

$ awk '$1=="CREATE" && $2="TABLE"{table=$3} /CCSID/ && \
    table{print "table " table, ":", $0}' l

出力:

table SSS.ACTIVITY : ACTIVITY_TYPE FOR COLUMN ACTIV00001 VARCHAR(50) CCSID 37 NOT NULL , 
table SSS.ACTIVITY : CAMPAIGN_TYPE FOR COLUMN CAMPA00001 VARCHAR(50) CCSID 37 NOT NULL , 
table SSS.ACTIVITY : COMPLETED TIMESTAMP NOT NULL ,                                             "COMMENT" VARCHAR(1000) CCSID 37 DEFAULT NULL , 
table SSS.ADDRESS :  CITY VARCHAR(30) CCSID 37 DEFAULT NULL , 
table SSS.ADDRESS : COUNTRY VARCHAR(30) CCSID 37 DEFAULT NULL , 
table SSS.ADDRESS : ADDRESSLINE1 FOR COLUMN ADDRE00001 VARCHAR(30) CCSID 37 DEFAULT NULL , 
table SSS.ADDRESS : ADDRESSLINE2 FOR COLUMN ADDRE00002 VARCHAR(30) CCSID 37 DEFAULT NULL , 

おすすめ記事