手順
MySQLのデータをカラム指定してcsv,tsv形式でダンプするには、
mysqldump
と cut
コマンドを組み合わせる必要があります。
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 {ファイル名} > {出力ファイル名}