2017-02-28 22 views
2

我有一個sql模式文件,其中包含存儲過程,索引和創建表語句。我如何解析文件並提取所有的創建表語句。 create table語句沒有被定義爲一行。結構如下。提取表從sql模式文件創建語句

CREATE TABLE [CriticalZone] (
    [Id]  INT   IDENTITY (1, 1) NOT NULL, 
    [SiteId] NVARCHAR (100) NOT NULL, 
    [ZoneId] NVARCHAR (255) NOT NULL, 
    [ZoneName] NVARCHAR (255) NULL, 
    PRIMARY KEY CLUSTERED ([SiteId] ASC, [ZoneId] ASC) 
); 

請建議。

回答

3

如果您確定awk,以下將保留create陳述。您可能需要根據您的要求更改ORS的值。因爲這是添加一個新行,請隨時從ORS刪除\n

awk -v RS=';' -v ORS=';\n' '/CREATE TABLE/' inputfile