如何解决grep 2个单词,由空格和/或制表符分隔
我在文件中提取了多个表定义(每个文件一个定义),并且我试图从表定义中获取特定属性。 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,
样本表定义:
*egrep -i "\<CREATE\>\*.\*\<TABLE\>" WEB_APP_OWN_TABLES~VARS_WRK.sql | egrep -i "SET|MULTISET"*
解决方法
以下(扩展的)正则表达式应符合要求
egrep -i 'create[ \t]+(set|multiset)[ \t]+table' filename.txt
,
我们使用下面的命令获得所需的结果
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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。