我只需要创建一个insert.sql文件,其中包含A文件中的“INSERT”语句。你能帮我学习如何使用AWK处理字符串块吗?
@ INPUT FILE
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);
@ OUTPUT
INSERT INTO TEST_TABLE(COL1,COL2,COL3)
VALUES('ASKDFJ','ASKDJFL',SYSDATE);
INSERT INTO TEST_TABLE(COL1,COL2,COL3)
VALUES('ASKDFJ','ASKDJFL',SYSDATE-2);
答案 0 :(得分:3)
打印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
和空行正则表达式。
答案 1 :(得分:1)
您可以使用此脚本:
awk -v RS='\n\n' '$0 ~ "^INSERT"' file
记录分隔符RS
设置为2个换行符。
$0 ~ "^INSERT"
打印以关键字INSERT
答案 2 :(得分:1)
awk -v ORS="\n" -v RS= '/^INSERT/{print $0}' inputfile