【コピペ解決】Linuxでファイルを均等分割する方法(サンプル付き)【split】
Linuxで「大きなファイルを複数に分けたい」と思ったことはありませんか?
特に、ログファイルやデータファイルなどを均等に分割したいとき、split コマンドを使えば一発で解決できます。
この記事では、コピペで使える具体的なコマンド例+サンプルファイル付きで、初心者でも迷わないファイル分割の方法を紹介します!
均等に分けるためのサンプルデータ
今回使うサンプルは以下の10行のデータです。
sample.txt
line 1
line 2
line 3
line 4
line 5
line 6
line 7
line 8
line 9
line 10
このsample.txtを三等分してみたいと思います!
ファイルを3分割するコマンド
split -n l/3 sample.txt splitfile_
コマンド解説
| split | ファイルの中のデータを分割するコマンド |
| -n l/3 | 「-n」は分割数や割合を指定するオプション
「l/3」によってファイル内のデータを行単位(line-based)で3分割することを指定しています。 |
| sample.txt | 分割元となるファイル名
分けたいファイル名に直してください。 |
| splitfile_ | 分割先ファイル名の先頭に付きます。
例:splitfile_aa,splitfile_abといったように、ファイル名が被らないように分割されます。 |
🔰 Linuxを試せる環境がない方へ
実際に試してみたいけれど、Linux環境がない…
そんなときは、「さくらのVPS」を使えば簡単に自分専用のLinux環境が手に入ります!
- ✅ 月額524円(税込)〜手軽に始められる
- ✅ UbuntuやDebianなど、好みのOSが選べる
- ✅ SSH接続でターミナル操作もバッチリ
- ✅ 日本国内の大手サービスで安心・安定
\ あなただけのLinux環境を5分で構築! /
コマンド実行結果
splitコマンド実行後にlsコマンドで作業していたディレクトリの中身を確認してみます。
sample.txt
splitfile_aa
splitfile_ab
splitfile_ac
分割前のファイルも残っており、分割後のファイルはaa,ab.acといった順番で並んでいます。
分けられた3つのファイルの中身を見てみると。。
- splitfile_aa: line 1~line 4
- splitfile_ab: line 5~line 7
- splitfile_ac: line 8~line10
aaのファイルだけ4行格納されており他2つは3行が格納されています。
splitコマンドでは完全に均等にするわけではなく、可能な限り均等に分けるコマンドです。
指定した数字や行数で割り切れない分は始めの方のファイルが多めになります。
例えば、3で割ってたけど、あまりが2であった場合は、aa,abの2つのファイルが1行ずつ多くなっています。
行数を指定してファイルを均等に分割する方法
先ほど3分割の方法はファイル数を3つに指定していましたが、他にも1つのファイルに入れる事の出来る行数を指定することも出来ます!
例として2行ごとにファイル分割してみましょう。
split -l 2 sample.txt chunk_
コマンド解説
「-l」オプションで分割先ファイルの行数を指定しています。
その次に「2」があるので、分割先ファイルの行数は2行です。
sample.txtは分割元ファイル名なので分けたいファイル名に変えて下さい。
「chunk_」で分割先ファイル名の先頭を指定しています。
コマンド実行結果
- splitfile_aa: line 1~line 2
- splitfile_ab: line 3~line 4
- splitfile_ac: line 5~line 6
- splitfile_ad: line 7~line 8
- splitfile_ae: line 9~line 10
このように2行ずつのファイルが5つ作成されます!
結合して1つのファイルに戻したいとき
もし、分け方ミスったとかで分けたファイルを元に戻したい場合は以下のコマンドで戻します。
cat splitfile_* > merged.txt
catコマンドで分割先ファイル「splitfile_」から始まるファイル名のファイルをaaから順番に中身を出力し、「merged.txt」に格納するというものです。
なので結果的に分割したファイルを元通りに結合したということになります。
よくあるエラーと対処方法
エラー1つ目「split: command not found」
これはsplitコマンドが無い場合に出るエラーです。
以下のコマンドでsplitコマンドをインストールすればエラーを回避出来ます。
sudo apt install coreutils
エラー2つ目「出力ファイルが分割されない」
これは分割元ファイルの行数が指定行数より少ない。もしくはファイル内のデータに改行が無いと、出力ファイルされるファイルは1つしかなく中身もそのままになります。
中々無いですが、cpコマンドが使えなくなってしまった時の暫定対応でも使えますね!
まとめ
- split -n l/3 で均等に3分割(lはlineベースの指定)
- ファイル数に応じて splitfile_aa, ab, ac… ができる
- catで中身確認や再結合も可能
- cpコマンドの代理としても使える!
🔰 Linuxを試せる環境がない方へ
コマンドなどを実際に試してみたいけれど、Linux環境がない…
そんなときは、「さくらのVPS」を使えば簡単に自分専用のLinux環境が手に入ります!
- ✅ 月額524円(税込)〜手軽に始められる
- ✅ UbuntuやDebianなど、好みのOSが選べる
- ✅ SSH接続でターミナル操作もバッチリ
- ✅ 日本国内の大手サービスで安心・安定







ディスカッション
コメント一覧
まだ、コメントがありません