概要
巨大ファイルを扱いやすい単位へ分割します。行数基準にもサイズ基準にも対応でき、後続処理を軽くできます。
基本構文
split [オプション]... [入力 [接頭辞]]詳細解説
splitは、大きなファイルを複数の小さなファイルへ分割するコマンドです。行数単位で区切る方法と、バイトサイズ単位で区切る方法が代表的です。
実務では、大きなログの分割、処理の並列化前準備、転送や保管の都合でサイズを抑えたい時に使います。分割後の命名規則も重要で、後続処理が読みやすい接頭辞設計が役立ちます。
このコマンドを使う場面
巨大ファイルを小分けにしたい時、並列処理しやすくしたい時、転送サイズを制御したい時に使います。
まず安全に試す方法
1. seq 1 20 > nums.txt
2. split -l 5 nums.txt part_
3. ls part_*
3分ミッション
少しでも手を動かすと定着しやすくなります。終わった項目にチェックを入れてください。
-
split -l 5で20行ファイルを4つへ分けます。
資格試験との関連
-
LinuC レベル1
範囲: 1.03.2 フィルタを使ったテキストストリームの処理根拠: officialsplitは、テキスト処理系の基本フィルタとしてLinuCレベル1の範囲に関わります。
-
LPIC-1
範囲: 103.2 フィルタを使ったテキストストリームの処理根拠: officialsplitは、LPIC-1でテキストストリームへフィルタを適用する技能と関係します。
-
共通基礎
範囲: Linuxコマンド基礎根拠: editorialsplitは、ファイル操作またはテキスト処理の基本を支えるため、試験横断の共通知識として価値があります。
実行結果サンプル
-
seq 1 10 | split -l 3 - nums_nums_aa nums_ab nums_ac nums_ad
戻り値コード
- 0 正常終了。分割に成功しました。
- >0 読取失敗や書込失敗などで失敗しました。
使用例
split -l 1000 app.log chunk_split -b 100M backup.tar part_
よくあるエラー
-
テキストの途中でレコードが壊れた 原因: サイズ分割を使ったため、行境界が保たれていません。対処: レコードを保ちたい時は-lで行数分割を使います。
導入・互換性情報
POSIXの基本機能は共通です。GNU実装では数値接尾辞などの拡張があります。
注意点 / セキュリティリスク
危険度は低いですが、行単位分割とサイズ分割を混同すると、レコード境界が壊れることがあります。テキスト処理では通常-lを優先します。
FAQ
-
Q. 元へ戻せますか。 A. 単純分割ならcatで順に連結できますが、順番管理が重要です。
参照リンク
- カテゴリー: Text Processing
- レベル: Practical
- 対応試験: LinuC, LinuC レベル1, LPIC, LPIC-1, 共通基礎