我在 shell 脚本中有以下查询:
mysql -e "use hive; select DISTINCT TAB.DB_NAME, TAB.TABLE_NAME from
TABLE_PARAMS INNER JOIN TAB ON TABLE_PARAMS.TBL_ID = TAB.TBL_ID
where PARAM_KEY = 'numRows'" -u root -p$Pass
如果我在命令行上运行它,格式会很棒。但是,当我使用电子邮件发送结果时
| mail -s "Missing compute stats" [email protected] >/dev/null 2>&1
到处都是。有没有一种简单的方法可以在电子邮件中格式化结果?我尝试过:将 \G 放在查询末尾,效果很好,但我宁愿将其保留为垂直格式。
谢谢
编辑:这是我电子邮件中的结果
DB_NAME TABLE_NAME
customer_touch tbldatelookup
customer_touch_archive_bb bb_comm_camphist_ltd
customer_touch_archive_bb bb_comm_camphist033114
customer_touch_archive_bb bb_ed_camphist
customer_touch_archive_bb camphist
customer_touch_archive_bb cd_drop
我想看到的:
+---------------------------------+-----------------------------+
| DB_NAME | TABLE_NAME |
+---------------------------------+-----------------------------+
| customer_touch | tbldatelookup |
| customer_touch_archive_bb | bb_comm_chist_ltd |
| customer_touch_archive_bb | st_cla_sa |
| customer_touch_archive_bb | st_cla_a |
| customer_touchpoint_archive_stg | tier_r_prod_h27 |
+---------------------------------+-----------------------------+
答案1
使用--table
或-t
与mysql
客户一起使用:
mysql -t -D hive -u root -p"$Pass" \
-e "SELECT DISTINCT TAB.DB_NAME, TAB.TABLE_NAME
FROM TABLE_PARAMS
INNER JOIN TAB ON TABLE_PARAMS.TBL_ID = TAB.TBL_ID
WHERE PARAM_KEY = 'numRows'" |
mail -s etc. etc.
(顺便问一下,这个 SQL 是不是有点奇怪?它是TAB
从哪里来的?)
从手册:
--table
,-t
以表格格式显示输出。这是交互式使用的默认设置,但可用于以批处理模式生成表输出。