【发布时间】:2018-09-25 05:08:57
【问题描述】:
我目前正在编写一个 shell 脚本,它将查询一些配置单元表的每月记录计数以获取表列表,然后将总计数值提取为 .txt 文件。我目前有代码可以每年查询所有表,但我怎样才能最好地让它每年每月循环一次呢?
例如,现在我的脚本将循环遍历我经过的每一年(year=2001, 2002,2003,...)并查询我的表并提取文件。我希望它每年每月循环一次,以便理想情况下每年有 12 个文件,并在我分配的任何年份继续循环。
下面是我目前拥有的示例伪代码:
#!/usr/bin/sh
years=2001,2002,2003,2004
for year in $(echo ${years} | sed "s/,/ /g")
do
select_sql="INSERT OVERWRITE LOCAL DIRECTORY <path> ROW FORMAT DELIMITED FIELDS TERMINATED BY '~' select * from tbl where year(date)=$year"
beeline -u "<jdbc connection>" --hiveconf -e "$select_sql"
done
【问题讨论】:
-
Plenty of examples 网络上的嵌套循环,所以想知道你可能会卡在哪里。你能展示一下你到目前为止所做的尝试吗?
-
好的,刚刚用一些示例代码编辑了帖子
-
您几乎可以在
do..done块内插入另一个for循环,并以数字或字符串的形式迭代数月。