bash—使用grep和regex获取配置单元表的分区

mzillmmw  于 2021-06-25  发布在  Hive
关注(0)|答案(1)|浏览(285)

我正在尝试使用grep和regex在bash中获取配置单元表的分区列名。我正在尝试:

hive -e 'show create table employees'  | grep -E 'PARTITIONED BY (.*)'

结果是: PARTITIONED BY ( 如何修改命令以获取此部分: PARTITIONED BY ( year char(4), month char(2)) 我的最终目标是将所有的分区列抓取到变量或数组中,以便以后使用它们。如果有更好的方法来实现我想做的事情,我也愿意接受。
任何帮助都将不胜感激。
谢谢您。

brccelvz

brccelvz1#

你可以用

hive -e 'describe formatted employees' | \
  awk '/Partition/{p=1; next} /Detailed/{p=0} p' | \
    grep -oE '^[[:alnum:]_]+'

这个 describe formatted employees 将产生更好的格式输出来描述表, awk '/Partition/{p=1; next} /Detailed/{p=0} p' 将提取介于 Partition 以及 Detailed 不包括匹配线和 grep -oE '^[[:alnum:]_]+' 将仅获取位于行开头且仅包含字母或数字的单词。如果只有字母可以替换 [:alnum:][:alpha:] .

相关问题