gpt4 book ai didi

ubuntu - grep 和 awk 仅复制插入语句

转载 作者:行者123 更新时间:2023-12-04 18:37:23 24 4
gpt4 key购买 nike

我有一个包含多行 Create、Insert、Alter 语句的 .sql 文件,现在我只想获取 INSERT 语句并将其复制到另一个 .sql 文件中。
Create 和 Insert 语句的示例是

CREATE CACHED TABLE "PUBLIC"."xyz"(
"ID" BIGINT NOT NULL,
"GID" BIGINT NOT NULL,
"GDATA" BINARY(65536)
);


INSERT INTO "PUBLIC"."INFORMIX_SERVERS" VALUES
(4521215141212121, 8763121524544545454
4545, X'3a000000127265706f7369746f7279536572');
我尝试了以下命令但没有成功
猫转储.sql | grep -i '插入* );' cat dump.sql | grep -E 'insert*);' | awk -F\> '{ print $2 }' | awk -F\< '{ print $1 }'

最佳答案

如果您的 Input_file 的 INSERT 语句在其所有行之前和之后都是空的,那么这可能会有所帮助。

awk -v RS= '/^INSERT/' Input_file
或者您可以尝试遵循更通用的解决方案。
awk '!NF||/^CREATE/{foundInsert=""} /^INSERT/{foundInsert=1} foundInsert' Input_file
解释:为上述添加详细说明。
awk '               ##Starting awk program from here.
!NF || /^CREATE/{ ##Checking condition if NF is NULL OR line starts from CREATE then do following.
foundInsert="" ##Nullifying foundInsert here.
}
/^INSERT/{ ##Checking condition if line starts from INSERT then do following.
foundInsert=1 ##Setting foundInsert to 1 here.
}
foundInsert ##Checking if foundInsert is SET then print that line.
' Input_file ##Mentioning Input_file name here.

关于ubuntu - grep 和 awk 仅复制插入语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65338649/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com