SQL DDL
特定のブロックを 1 つのファイルに書き込み、残りを 1 秒に書き込みたい出力ファイル (実際には です) があります。
私はこれを行うか、gawk
またはsed
できるかを考えていました。具体的には、 1 つのファイルなどに基づいてリダイレクトし、残りを 2 番目のファイルにダンプし
たいと考えています。/^CREATE (TABLE|VIEW)[^;]+/
1 に答える
0
sed -n -r -e '/CREATE (VIEW|TABLE)/,/;/ { w file1
d
}
w file2' file.sql
これは、CREATE ステートメントに関連付けられたセミコロンが CREATE キーワードと同じ行にないことを前提としています。
ファイル.sql
CREATE VIEW xyz AS
SELECT * FROM SomeTable;
GRANT ALL ON xyz TO public;
CREATE TABLE pqr
(
abc INTEGER NOT NULL,
def VARCHAR(255) NOT NULL
);
GRANT SELECT, INSERT ON pqr TO public;
CREATE VIEW jkl AS
SELECT * FROM pqr;
ファイル1
CREATE VIEW xyz AS
SELECT * FROM SomeTable;
CREATE TABLE pqr
(
abc INTEGER NOT NULL,
def VARCHAR(255) NOT NULL
);
CREATE VIEW jkl AS
SELECT * FROM pqr;
ファイル2
GRANT ALL ON xyz TO public;
GRANT SELECT, INSERT ON pqr TO public;
于 2013-05-16T23:50:00.537 に答える