我只需要创建一个insert.sql文件,其中包含一个文件中的'INSERT‘语句。你能帮我学习如何用AWK来处理字符串块吗?
@输入文件
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); @输出
INSERT INTO TEST_TABLE(COL1,COL2,COL3)
VALUES('ASKDFJ','ASKDJFL',SYSDATE);
INSERT INTO TEST_TABLE(COL1,COL2,COL3)
VALUES('ASKDFJ','ASKDJFL',SYSDATE-2); 发布于 2017-02-14 09:25:12
打印INSERT和空行之间的内容:
$ 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。
发布于 2017-02-14 07:40:54
您可以使用以下脚本:
awk -v RS='\n\n' '$0 ~ "^INSERT"' file记录分隔符RS设置为2个换行符。
$0 ~ "^INSERT"打印以关键字INSERT开头的记录。
发布于 2017-02-14 07:52:52
awk -v ORS="\n" -v RS= '/^INSERT/{print $0}' inputfilehttps://stackoverflow.com/questions/42220249
复制相似问题