MacでCSVファイルを1000行ずつに分割する方法

MacでCSVファイルを1000行ずつに分割する方法


先日、1万行あるCSVファイルを1000行ずつに分割する必要があったので、簡単にできる方法を調べました。手作業で分割するとなるととても大変&ミスが起きやすいですが、splitコマンドを使えば、一瞬です!

実行環境:Apple M1 Mac OS Sonoma 14.4.1

splitコマンドとは?

splitコマンドは、ファイルを指定したサイズや個数、行数に分割するコマンドです。ファイルが大きくてアップロードできない時やインポートに失敗してしまう時、ファイルサイズの制限がある時などに便利です。

分割するファイルの種類には特に制限がありません。音楽ファイルやテキストファイルを分割することもできます。今回は、csvファイルを分割してみました。

gsplitのオプションを使う準備

splitコマンド単体でもファイルの分割はできますが、Macの場合、細かいオプション(分割後のファイル名など)がそのままだと使えないので、ターミナルで、Homebrewを使ってcoreutilsをインストールしておきます。coreutilsは他にもいろいろなコマンドが含まれていますが、ここでは説明を省きます。

brew install coreutils

gsplitコマンドの実行

次に、分割したいファイルが置いてあるディレクトリに移動したあと、下記のコマンドを実行します。

gsplit -l 1000 -d -a 3 hogehoge.csv file_hogehoge --additional-suffix=.csv

-l は、行単位で分割するオプションです。-bにすると、バイト単位で分割になります。
-d は、接尾辞を英字ではなく数字にするオプションです。デフォルトだと英語が接尾語になります。
-a 3 は、分割後のファイル名の接尾語の数字の桁数です。
1000 は、分割する行数や、ファイルサイズなどを入れます。
hogehoge.csv は、分割したい元ファイルです。
file_hogehoge は、分割後のファイル名の先頭につける文字列です。
–additional-suffix= は、ファイル名の末尾に文字列を追加するオプションです。
.csv は、分割後のファイルにつける拡張子を入れます。

上記のコマンドを実行すると、1000行ずつに分割されたファイル、file_hogehoge_000.csv,file_hogehoge_001.csv,,file_hogehoge_002.csvといったファイルが生成されます。

1000行ずつに分割したCSVファイル

なお、分割されたファイルは、ひとつめのファイル以外、ヘッダーがありませんので、手動で追加してあげる必要がありました。そこは少し手間です。

終わりに

今回は、大きなファイルを細かく分割できる、gsplitコマンドを紹介しました。一瞬で分割できるので、大容量のファイルの扱いに困っている方は、ぜひ試してみてください。

まい

Webサービス制作会社で、Wordpressのテーマ開発や2Dシミュレーターの開発、JavaScriptを使用したフロントエンド周りの実装を担当しています。 JavaScriptが好きです。 最近は、3D Model Configuratorの制作にチャレンジしています。

その他カテゴリの最新記事