从DDL文件中提取表名

时间:2017-07-27 04:36:42

标签: sql linux unix awk sed

我有DDL文件并使用grep命令我可以使用命令cat employee.sql | grep -i 'TABLE'

提取以下行

DDL

CREATE TABLE TEMP_EMPLOYEE(
       ID VARCHAR(255),
       NAME VARCHAR(150),
       ADDRESS VARCHAR(150),
       STREET VARCHAR(150),
       SUBURB VARCHAR(100),
       STATE VARCHAR(100)
        );

CREATE TABLE TEMP_EMPLOYEE(

我想从上面的字符串中进一步提取just TABLE名称。有人可以帮忙吗?我使用了sed但打印了相同的字符串。

1 个答案:

答案 0 :(得分:4)

我建议使用GNU grep:

grep -Po 'CREATE TABLE \K[^(]*' employee.sql

或GNU sed:

sed -n 's/CREATE TABLE \(.*\)(/\1/p' employee.sql

或awk:

awk -F '[( ]' '/CREATE TABLE/ {print $3}' employee.sql

输出:

TEMP_EMPLOYEE