특정 단어로 시작하고 특정 단어로 끝나는 줄을 삭제하는 방법

특정 단어로 시작하고 특정 단어로 끝나는 줄을 삭제하는 방법

예를 들어:

CREATE TABLE COMM.ACL_ENTRY (
        ACL_OID CHAR(18) FOR BIT DATA NOT NULL ,
        USER_DESC_TYPE FOR COLUMN USER_00001 BIGINT NOT NULL ,
        USER_DESC_OID FOR COLUMN USER_00002 VARGRAPHIC(220) CCSID 13488 NOT NULL ,
        ACTIONS BIGINT NOT NULL ,
        CONSTRAINT COMM.PK5111 PRIMARY KEY( ACL_OID , USER_DESC_OID ) )
        ;

ALTER TABLE COMMUN.ACL_ENTRY
        ADD CONSTRAINT COMM.FK5111A
        FOREIGN KEY( ACL_OID )
        REFERENCES COMM.ACL ( OID )
        ON DELETE CASCADE
        ON UPDATE NO ACTION ;

위의 예에서 볼 수 있듯이. 단어로 시작하는 줄 ALTER부터 특정 패턴으로 끝나는 줄까지 삭제 ;하고 삭제된 줄을 다른 파일에 인쇄하고 싶습니다 .

답변1

sed두 작업 모두에 사용할 수 있습니다 . 정규식일 수 있는 소위 "주소"를 지원합니다.

sed -n -e '/^ALTER/,/;$/p' > another.file # Prints them,
sed -i~ -e '/^ALTER/,/;$/d'               # Deletes them.

관련 정보