我正在尝试使用grep和regex在bash中获取配置单元表的分区列名。我正在尝试:
hive -e 'show create table employees' | grep -E 'PARTITIONED BY (.*)'
结果是: PARTITIONED BY (
如何修改命令以获取此部分: PARTITIONED BY ( year char(4), month char(2))
我的最终目标是将所有的分区列抓取到变量或数组中,以便以后使用它们。如果有更好的方法来实现我想做的事情,我也愿意接受。
任何帮助都将不胜感激。
谢谢您。
1条答案
按热度按时间brccelvz1#
你可以用
这个
describe formatted employees
将产生更好的格式输出来描述表,awk '/Partition/{p=1; next} /Detailed/{p=0} p'
将提取介于Partition
以及Detailed
不包括匹配线和grep -oE '^[[:alnum:]_]+'
将仅获取位于行开头且仅包含字母或数字的单词。如果只有字母可以替换[:alnum:]
与[:alpha:]
.