10
6

More than 5 years have passed since last update.

MySQLのデータをカラム指定してcsv,tsv形式でダンプする

Last updated at Posted at 2016-03-11

手順

MySQLのデータをカラム指定してcsv,tsv形式でダンプするには、
mysqldumpcutコマンドを組み合わせる必要があります。

1.mysqldumpでcsvデータを作成
2.cutで必要なカラムだけを抽出

mysqldumpでデータをダンプ

MySQLのデータをカラム指定してcsv,tsv形式でダンプする を参考にcsv(tsv)データを作ります。

$ mysqldump -u{ユーザー名} -p --tab=/tmp --fields-terminated-by=, {DB名} {テーブル名(省略可能)}
Enter password:パスワードを入力

cutコマンドで指定カラムだけを抽出

cut はテキストファイルからバイトやカラムを指定して抽出できるunixコマンドです。

$ cut --help
使用法: cut [オプション]... [ファイル]...                                  
ファイルの各行から選択した部分だけを切り出して, 標準出力に表示します.

長いオプションに必須の引数は短いオプションにも必須です.
  -b, --bytes=LIST        select only these bytes
  -c, --characters=LIST   select only these characters
  -d, --delimiter=DELIM   use DELIM instead of TAB for field delimiter
  -f, --fields=LIST       select only these fields;  also print any line
                            that contains no delimiter character, unless
                            the -s option is specified
・・・

-d-fオプションを使うことで、指定カラムだけを抽出できます。

-dオプション

区切り文字を指定するオプションです。
省略時はタブが区切り文字となります。

-fオプション

抽出するフィールドを指定するオプションです。
カンマ区切りで複数指定でき、-f 1,3と使うと、1列目と3列目だけを抽出できます。

例えばcsvのファイルの1,3列目を抽出するには、以下のように実行します。

$ cut -d , -f 1,3 {ファイル名}

ファイルに出力する場合はリダイレクトします。

$ cut -d , -f 1,3 {ファイル名} > {出力ファイル名}
10
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
6