目次
splitコマンドとは?
split
コマンドは、Linuxで大きなファイルを複数の小さなファイルに分割するためのユーティリティです。
ファイルサイズや行数を指定して分割が可能で、大量のデータを処理したり、
ファイルを分割して転送したりする場面で非常に役立ちます。
基本構文
split [オプション] [入力ファイル] [出力ファイルのプレフィックス]
- 入力ファイル: 分割対象のファイルを指定(省略時は標準入力)。
- 出力ファイルのプレフィックス: 分割後のファイル名に付けるプレフィックス(省略時は
x
)。
主なオプション一覧
オプション | 説明 |
---|---|
-b | 分割するサイズをバイト単位で指定 |
-l | 分割する行数を指定 |
-d | 分割後のファイル名に数字を使用(デフォルトはアルファベット) |
--additional-suffix=SUFFIX | 出力ファイルに追加のサフィックスを付ける |
-n | 分割するチャンク数を指定 |
各オプションの実行例と結果
1. ファイルを1MBずつ分割(オプション -b
)
split -b 1M largefile split_
結果:
largefile
が1MBごとに分割され、split_aa
、split_ab
のようなファイルが生成されます。
2. 行数で分割(オプション -l
)
split -l 1000 largefile split_
結果:
largefile
が1000行ごとに分割され、split_aa
、split_ab
のようなファイルが生成されます。
3. 数字で命名(オプション -d
)
split -d -l 1000 largefile split_
結果:
分割後のファイル名がsplit_00
、split_01
のように数字で生成されます。
4. サフィックスを追加(オプション --additional-suffix
)
split -l 1000 --additional-suffix=.txt largefile split_
結果:
分割後のファイルがsplit_aa.txt
、split_ab.txt
のように生成されます。
5. チャンク数で分割(オプション -n
)
split -n 4 largefile split_
結果:
largefile
が4つの等しい部分に分割され、split_aa
、split_ab
、split_ac
、split_ad
のように生成されます。
実用例
1. 大きなログファイルを分割して解析
split -l 10000 access.log log_chunk_
目的:
ログファイルを分割して並列解析を容易にします。
2. サイズ制限付きのファイル転送
split -b 50M largefile part_
目的:
メールやストレージサービスの制限に合わせてファイルを分割。
3. ファイルの統合
分割後のファイルを統合するにはcat
コマンドを使用します。
cat split_* > merged_file
注意点
- 元ファイルの整合性
分割されたファイルを再結合する際、順番が正しくなるよう注意が必要です。 - 適切なプレフィックスの設定
ファイル名のプレフィックスを指定しない場合、x
というデフォルトの名前が使われます。 - 適用範囲
標準入力もサポートしているため、パイプライン操作にも活用できます。
まとめ
split
コマンドは、大きなファイルを効率的に管理するための強力なツールです。
行数やサイズによる分割、ファイル命名のカスタマイズ、さらにはデータ転送の効率化まで、多くの場面で利用できます。
適切に使いこなして、データ管理やトラブルシューティングをスムーズに進めましょう。