シェルスクリプトには次のクエリがあります。
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を置くとうまくいきますが、垂直方向のフォーマットを維持することをお勧めします。
ありがとう
編集:私のEメールの結果は次のとおりです。
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はちょっとおかしくないですか?どこから出たSQLですかTAB
?)
マニュアルから:
--table
、-t
出力を表形式で表示します。これは対話型の使用のためのデフォルトですが、バッチモードでテーブル出力を生成するために使用できます。