行ごとにSQLクエリ出力形式を指定する方法

行ごとにSQLクエリ出力形式を指定する方法

次のクエリは、名前付き変数の値を取得します。result

result=`mysql --user=root --password=password1 deployment --host=localhost -Ns -e "SELECT DATE_FORMAT(LAST_DAY(url_timestamp), '%M %Y') month, COUNT(url_timestamp) counter FROM mytable WHERE status='PRODUCTION' and url_timestamp >= NOW() - INTERVAL 1 YEAR GROUP BY month, LAST_DAY(url_timestamp) ORDER BY LAST_DAY(url_timestamp);"`

echo $result

出力:

November 2019 43 December 2019 556 January 2020 111 February 2020 221   ....    November 2020 98

注:SQLクライアントに表示されるSQLクエリの出力は正しい形式です。ただし、シェル変数に割り当てると、行型が失われます。

私の予想結果は次のとおりです。

November 2019 43 
December 2019 556
January 2020 111
February 2020 221
   ....    
   ....
November 2020 98

何か提案してもらえますか?

答え1

参照変数:

echo "$result"

そして使用する方が良いprintf:

printf '%s\n' "$result"

このタイプを使用する方が良いコマンドの置き換え$(...)代わりに。

関連情報