はじめに
MySQLのSELECT結果をダブルクォーテーションなしで出力すると、Excelで開いた時にズレることがあるので、ダブルクォーテーション付きCSVファイルに出力する方法を備忘として残しておきます。
コマンド
mysql -u {user} -p {DB} -h {host} -e "select文" | sed -e 's/\t/","/g;s/^/"/;s/$/"/' > /tmp/test.csv
【sed部分の説明】
sed -e 's/\t/","/g;s/^/"/;s/$/"/'
-
-e
オプション:指定したスクリプト(条件式)で変換処理を行う -
s/\t/","/g
:全てのタブを「ダブルクォーテーション-カンマ-ダブルクォーテーション(",")」に置換 -
s/^/"/
:行頭にダブルクォーテーション付与 -
s/$/"/
:行末にダブルクォーテーション付与
おわりに
出力ファイル内にマルチバイト文字が含まれているとExcelで開いた時に文字化けする(文字コードがUTF-8の場合)ので、適宜文字コード変換すること。