Linuxコマンドsplit使い方と4つのオプション

Linuxコマンドsplitは、大きなファイルを複数の小さなファイルに分割する際に使用されます。特に、システムログファイルや大容量データファイルを処理する場合、ファイルサイズが大きすぎると管理が難しくなったり、一部のプログラムで正常に処理できない可能性があります。今回の投稿では、splitコマンドの基本的な使い方と主要なオプション、そして便利な活用方法について紹介します。

Linuxコマンドsplitとは?

splitは、指定されたサイズや行数に基づいて、1つのファイルを複数の小さなファイルに分割するコマンドです。基本的にはLinuxシステムで提供されるユーティリティで、大容量ファイルを管理したり、転送する際に非常に役立ちます。

基本的な使い方

splitコマンドの基本的な使い方は以下の通りです。

split [options] filename [prefix]
ShellScript

例えば、sample.txtというテキストファイルを複数の小さなファイルに分割したい場合、次のように入力します。

split sample.txt
ShellScript

このコマンドは、デフォルトでファイルを1000行ずつ分割し、複数のファイルを生成します。ファイル名はxaa, xab, xacといった形式で自動的に作成されます。

図1. Linuxコマンドsplit: デフォルトで1000行ずつ分割
図1. Linuxコマンドsplit: デフォルトで1000行ずつ分割

主要オプション

splitコマンドには、さまざまなオプションがあり、これを使ってファイルを分割する方法やファイル名を細かく設定できます。主要なオプションを見ていきましょう。

行数で分割する (-lオプション)

デフォルトでは1000行ですが、ユーザーが希望する行数に調整することができます。ファイルを特定の行数で分割したい場合は、-lオプションを使用します。

split -l 500 sample.txt
ShellScript

このコマンドは、sample.txtファイルを500行ずつに分割してファイルを作成します。

図2. Linuxコマンドsplit: -lオプションで行数を指定して分割
図2. Linuxコマンドsplit: -lオプションで行数を指定して分割

ファイルサイズで分割する (-bオプション)

ファイルを特定のサイズで分割したい場合は、-bオプションを使用します。サイズを設定する際に、K(キロバイト)、M(メガバイト)、G(ギガバイト)などの単位を使用できます。単位を指定しない場合、バイト単位で設定されます。

split -b 30K sample.txt
ShellScript

このコマンドは、sample.txtを30KB単位で分割し、それぞれのファイルを作成します。

図3. Linuxコマンドsplit: -bオプションでサイズを指定して分割
図3. Linuxコマンドsplit: -bオプションでサイズを指定して分割

ファイルの接頭辞を設定する (-dオプション)

ファイル名に数字やアルファベットの代わりに、別の接頭辞を指定したい場合は、-dオプションを使用できます。

split -d -b 50K sample.txt part_
ShellScript

このコマンドは、sample.txtを50KB単位で分割し、part_00, part_01, part_02などのファイルを作成します。

図4. Linuxコマンドsplit: -dオプションで接頭辞を設定して分割
図4. Linuxコマンドsplit: -dオプションで接頭辞を設定して分割

分割されたファイルを結合する方法

splitコマンドで分割したファイルを再び結合したい場合は、catコマンドを使用して簡単に結合できます。

cat x* > merged.txt      # デフォルト
cat part_* > merged.txt  # 接頭辞付き
ShellScript

このコマンドは、xaa, xab, xacなどに分割されたファイルを再び1つのファイルに結合し、merged.txtとして保存します。

図5. Linuxコマンドsplitで分割したファイルをcatコマンドで結合
図5. Linuxコマンドsplitで分割したファイルをcatコマンドで結合

splitコマンドの便利な活用方法

splitコマンドは、大容量ファイルを管理する際に便利なツールです。ファイルを複数に分割することで、転送やバックアップが容易になります。特に次のような場合に有用です。

  • ネットワーク転送時: 大きなファイルを転送する際、エラーで転送が中断されるリスクがあります。このとき、ファイルを分割して転送すれば、エラーが発生した場合、その部分だけを再送することで済みます。
  • ストレージ容量の管理: 限られた容量のストレージを使用する際、ファイルを小さな単位に分割し、必要な部分だけ保存またはバックアップできます。

注意事項

  • ファイルを分割する際、分割されたファイルが元のファイルと同じ形式を維持しない場合があります。そのため、テキストファイル以外の形式のファイルを分割する際には注意が必要です。
  • splitコマンドで分割したファイルを他のシステムで使用したり転送する場合、必ず結合する必要があります。分割されたファイルを転送する場合、結合方法を案内することをお勧めします。
  • 分割されたファイルが多くなると、ファイルの管理が複雑になる可能性があります。接頭辞やファイル名を体系的に管理することが重要です。

まとめ

Linuxコマンドsplitは、大容量ファイルを分割して管理や転送を行う際に非常に便利なツールです。基本的な使い方から様々なオプションを活用することで、ファイルを希望のサイズや行数に簡単に分割でき、接頭辞の設定などを通じてファイル名の管理も容易に行えます。分割したファイルを結合する方法もシンプルなので、ファイル管理に大いに役立つでしょう。このコマンドを活用して、より効率的なLinuxファイル管理を行ってみてください。

リファレンス

関連ポスト

コメントする