首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使字符串块在awk中启动模式

如何使字符串块在awk中启动模式
EN

Stack Overflow用户
提问于 2017-02-14 07:31:01
回答 3查看 58关注 0票数 0

我只需要创建一个insert.sql文件,其中包含一个文件中的'INSERT‘语句。你能帮我学习如何用AWK来处理字符串块吗?

@输入文件

代码语言:javascript
复制
UPDATE TEST_TABLE SET CO1 = '11111', COL2 = '234234234'
WHERE COL3 < SYSDATE;

UPDATE TEST_TABLE SET CO1 = '11111', COL2 = '234234234'
WHERE COL3 < SYSDATE;

INSERT INTO TEST_TABLE(COL1,COL2,COL3) 
VALUES('ASKDFJ','ASKDJFL',SYSDATE);

UPDATE TEST_TABLE SET CO1 = '11111', COL2 = '234234234'
WHERE COL3 < SYSDATE;

INSERT INTO TEST_TABLE(COL1,COL2,COL3) 
VALUES('ASKDFJ','ASKDJFL',SYSDATE-2);   

@输出

代码语言:javascript
复制
INSERT INTO TEST_TABLE(COL1,COL2,COL3) 
VALUES('ASKDFJ','ASKDJFL',SYSDATE);

INSERT INTO TEST_TABLE(COL1,COL2,COL3) 
VALUES('ASKDFJ','ASKDJFL',SYSDATE-2);   
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-02-14 09:25:12

打印INSERT和空行之间的内容:

代码语言:javascript
复制
$ awk '/INSERT/,/^$/' file
INSERT INTO TEST_TABLE(COL1,COL2,COL3)
VALUES('ASKDFJ','ASKDJFL',SYSDATE);

INSERT INTO TEST_TABLE(COL1,COL2,COL3)
VALUES('ASKDFJ','ASKDJFL',SYSDATE-2);

根据您的喜好选择INSERT和空行regexp。

票数 3
EN

Stack Overflow用户

发布于 2017-02-14 07:40:54

您可以使用以下脚本:

代码语言:javascript
复制
awk -v RS='\n\n'  '$0 ~ "^INSERT"' file

记录分隔符RS设置为2个换行符。

$0 ~ "^INSERT"打印以关键字INSERT开头的记录。

票数 1
EN

Stack Overflow用户

发布于 2017-02-14 07:52:52

代码语言:javascript
复制
awk -v ORS="\n" -v RS= '/^INSERT/{print $0}' inputfile
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42220249

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档