我在文件中提取了多个表定义(每个文件一个定义),并且我试图从表定义中获取特定属性。 table属性可以是SET或MULTISET,表定义可以像
git pull origin master
OR
CREATE MULTISET TABLE WEB_APP_OWN_TABLES.VARS_WRK ,NO FALLBACK ,
单词CREATE和MULTISET / SET之间可以有多个空格和/或制表符
单词MULTISET / SET和TABLE之间可以有多个空格和/或制表符
单词之间的空格和/或制表符的数量可以随每个定义而变化。我使用下面的命令来获取属性,但是它可以给我诸如“ CREATE_BY_TABLE”的列名。有更好的方法吗?
CREATE SET TABLE WEB_APP_OWN_TABLES.VARS ,NO FALLBACK ,
样本表定义:
*egrep -i "\<CREATE\>\*.\*\<TABLE\>" WEB_APP_OWN_TABLES~VARS_WRK.sql | egrep -i "SET|MULTISET"*
答案 0 :(得分:0)
以下(扩展的)正则表达式应符合要求
egrep -i 'create[ \t]+(set|multiset)[ \t]+table' filename.txt
答案 1 :(得分:0)
我们使用下面的命令获得所需的结果
with
cte_carrier_guid (carrier_guid, email, date, carrier_id) as
(
SELECT
guid as carrier_guid
,mc.email
,dt2.date as date
,mc.id as carrier_id
FROM ctms_db_public.msd_carrier mc
CROSS JOIN public.dim_calendar dt2
WHERE dt2.date <= CURRENT_DATE
AND mc.created_at >= dt2.date
GROUP BY guid, mc.id, dt2."date", mc.email
ORDER BY guid, dt2.date asc
)
Select top 10 * from cte_carrier_guid