mysqlクライアントの-sオプションでタブ区切り出力にする

  • MySQL
  • CLI

この記事は、構成と文章の整理にAIを使っています。
あくまで読みやすくするための補助で、内容そのものをAIにすべて任せて書いているわけではありませんが、ところどころ相談しながら整えています。

やったこと

mysqlコマンドラインクライアントで、クエリ結果をそのままTSVファイルに落としたいことがある。

mysql -s -u username -p dbname -h hostname -e "select * from tablename" > tablename.tsv

-sオプションの効果

-s(--silent)を付けると、罫線付きの整形されたテーブル表示ではなく、タブ区切りの出力になる。TSVファイルを作っているのはシェルのリダイレクト(>)で、-sはあくまで出力形式をタブ区切りに切り替えているだけ。

ヘッダー行(カラム名)はデフォルトでは出力される。

ヘッダーを消したい場合

データ行だけ欲しいときは-N(--skip-column-names)を追加する。

mysql -s -N -u username -p dbname -h hostname -e "select * from tablename" > tablename.tsv

パスワードの扱い

-pを単体で指定すると対話的にパスワード入力を求められる。-ppasswordのように直接値を書くこともできるが、シェルの履歴に平文で残るので避けたほうがいい。

結論

  • -s: タブ区切り出力への切り替え
  • -N: ヘッダー行(カラム名)を消す
  • TSVファイル自体はシェルの>リダイレクトで作られている