次の内容を含むファイルがあります。私がしなければならないことはフィルタリングだけです変化スクリプトにユニークその中にキーワードを入れて別のファイルに移動してください。 。を試してみましたが、うまくいきませsed -n '/ALTER TABLE/,/UNIQUE("ID");/p' file
んでした。
ALTER TABLE RELEASE.ACL_ENTRY
ADD CONSTRAINT RELEASE.FK5111A
FOREIGN KEY( ACL_OID )
REFERENCES RELEASE.ACL ( OID )
ON DELETE CASCADE
--ON UPDATE NO ACTION ;
ALTER TABLE RELEASE.ACTION_DESC
ADD CONSTRAINT RELEASE.UN2160A
UNIQUE( ID_MASK ) ;
ALTER TABLE RELEASE.ACTION_DESC
ADD CONSTRAINT RELEASE.UN2160B
UNIQUE( NAME ) ;
ALTER TABLE RELEASE.ACTION_DESC_LOD
ADD CONSTRAINT RELEASE.FK2170
FOREIGN KEY( ACTION_DESC_OID )
REFERENCES RELEASE.ACTION_DESC ( OID )
ON DELETE CASCADE
--ON UPDATE NO ACTION ;
ALTER TABLE RELEASE.ACTION_SET
ADD CONSTRAINT RELEASE.UN2120A
UNIQUE( "ID" ) ;
ALTER TABLE RELEASE.ACTION_SET
ADD CONSTRAINT RELEASE.UN2120B
UNIQUE( NAME ) ;
ALTER TABLE RELEASE.ACTION_SET_LOD
ADD CONSTRAINT RELEASE.FK2150A
FOREIGN KEY( ACTION_SET_OID )
REFERENCES RELEASE.ACTION_SET ( OID )
ON DELETE CASCADE
--ON UPDATE NO ACTION ;
ALTER TABLE RELEASE.APP_DESC
ADD CONSTRAINT RELEASE.FK20A
FOREIGN KEY( WEB_MOD_OID )
REFERENCES RELEASE.WEB_MOD ( OID )
ON DELETE CASCADE
--ON UPDATE NO ACTION ;
ALTER TABLE RELEASE.APP_DESC
ADD CONSTRAINT RELEASE.CC20B
CHECK( ( WEB_MOD_OID IS NOT NULL ) AND ( WEB_MOD_SL IS NULL ) ) ;
出力は他のファイルで次のようになります。
ALTER TABLE RELEASE.ACTION_DESC
ADD CONSTRAINT RELEASE.UN2160A
UNIQUE( ID_MASK ) ;
ALTER TABLE RELEASE.ACTION_DESC
ADD CONSTRAINT RELEASE.UN2160B
UNIQUE( NAME ) ;
ALTER TABLE RELEASE.ACTION_SET
ADD CONSTRAINT RELEASE.UN2120A
UNIQUE( "ID" ) ;
ALTER TABLE RELEASE.ACTION_SET
ADD CONSTRAINT RELEASE.UN2120B
UNIQUE( NAME ) ;
ベストアンサー1
cat inputfile | tr '\n' '@' | sed -e 's/;/;\n/g' | grep UNIQUE | tr '@' '\n'