【发布时间】:2020-07-06 16:41:22
【问题描述】:
我正在编写一个 shell 脚本,我需要在其中提取插入数据的表的名称。 因此,如果 sql 脚本包含诸如“插入到 table_name”之类的语句,则该脚本应该取出表名。
这就是我正在使用的
awk '{IGNORECASE = 1} /INSERT INTO/ && !a[$3]++{print $3}' $check_in_script >> $TBL_LST
awk '{IGNORECASE = 1} /UPDATE/ && !a[$2]++{print $2}' $check_in_script >> $TBL_LST
这运行良好,但有时脚本在插入和表名之间有换行符,我也需要为此添加一个案例。
insert into
table_name
如何确保即使行发生变化,awk 语句也会取出表名
谢谢
【问题讨论】:
-
欢迎来到 SO,特别感谢您在问题中以代码形式分享您的努力。请在您的问题中添加输入和预期输出示例,然后告诉我们。
-
edit 你的问题是显示几行真正具有代表性的示例输入/输出,其中包含你想要在上下文中匹配的文本以及你想要匹配和不想匹配的其他文本。
-
@yutivee : 你如何处理这样的情况:insert into 不是 SQL 命令的一部分,而是字符串的一部分,例如
update table set text = 'insert into'?
标签: sql bash shell awk scripting