vkr*_*ams 1 sql unix linux awk sed
我有 DDL 文件并使用 grep 命令我可以使用该命令提取以下行 cat employee.sql | grep -i 'TABLE'
数据线
CREATE TABLE TEMP_EMPLOYEE(
ID VARCHAR(255),
NAME VARCHAR(150),
ADDRESS VARCHAR(150),
STREET VARCHAR(150),
SUBURB VARCHAR(100),
STATE VARCHAR(100)
);
Run Code Online (Sandbox Code Playgroud)
CREATE TABLE TEMP_EMPLOYEE(
我想从上面的字符串中进一步提取 TABLE 名称。有人可以帮助如何。我用过sed但打印了相同的字符串。
我建议使用 GNU grep:
grep -Po 'CREATE TABLE \K[^(]*' employee.sql
Run Code Online (Sandbox Code Playgroud)
或 GNU sed:
sed -n 's/CREATE TABLE \(.*\)(/\1/p' employee.sql
Run Code Online (Sandbox Code Playgroud)
或 awk:
awk -F '[( ]' '/CREATE TABLE/ {print $3}' employee.sql
Run Code Online (Sandbox Code Playgroud)
输出:
TEMP_EMPLOYEE