重いCSVファイルを扱うのに困ったので備忘録

各300MB程度の10個のcsvファイルからデータを抽出する必要があるが、当然excelでは太刀打ちできない。 mysqlに読み込もうとしたが、手元のデータは文字コードDOS?でmysqlへの読み込み時にエラーが起きる。UTF-8に変換したいのだが、cotEditorで開いても重すぎて文字コードの変換も一苦労する状態。

コマンドラインで変換できないか調べてみた結果、ターミナルでnfkコマンドを試してみることにした。

 

まずはhomebrewでnkfコマンドをインストール

$ brew install nkf

次にバージョンチェック

$ nkf --version

 

※以下引用(http://kawatama.net/others/mac/1754

nkfコマンドの書式

$ nkf [options] [file]

nkfコマンドの主なオプション】

 

-u 出力時にバッファリングを行わない
-j JISコードに変換する
-e EUCコードに変換する
-s シフトJISコードに変換する
-w UTF8コードに変換する
-r ROT13/47の変換する
-T テキスト・モードで出力する
file 変換元のファイルを指定する
-g 文字コード自動判別の結果を表示
–overwrite 引数のファイルに直接上書き

※以上引用。

 

とのことなので、これを使って変換。

$ nkf -e `ファイル名`.csv > `変換先ファイル名`.csv

もちろんoverwriteでも可。

なお、macexcelで開くには、シフトJISに変換が必要。