我正在尝试解析SQL源或Shell脚本,尝试使用bash/awk/sed/perl
从中提取对象名称。
示例文本 - 假设文本文件包含如下命令:
CALL DBUSER.Compiled_Object_Name('....parameters...');
我的目的是解析文本文件以一次获取一行。我在bash中使用Do While来实现这一目标。
下一步是解析这样一行以提取下面的字符串,即对象名称。
DBUSER.Compiled_Object_Name
此处,DBUSER
是重复模式,始终由(
请建议。
答案 0 :(得分:1)
$ cat test.sql
CALL DBUSER.Compiled_Object_Name('....parameters...');
CALL DBUSER.Object_Name_1('....parameters...');
# WHATEVER
CALL DBUSER.Compiled_Object_Name('....parameters...');
grep的/ EGREP:
grep -o 'DBUSER\.[^\(]\{1,\}' test.sql
egrep -o 'DBUSER\.[^\(]+' test.sql
的Perl:
perl -ne 'next unless /DBUSER/; ($m) = $_ =~ /(DBUSER\.[^\(]+)/; print "$m\n";' test.sql
两者的结果:
DBUSER.Compiled_Object_Name
DBUSER.Object_Name_1
DBUSER.Compiled_Object_Name