csplit コマンドを使用して Linux でファイルを分割する方法
csplit は、ファイルの内容を 2 つに分割するために使用される一般的な Linux コマンドライン ユーティリティです。変更する必要があるファイルは、拡張子が「.txt」のテキスト ファイルである必要があります。
このコマンドは使いやすく、すべての Linux ディストリビューションでうまく機能します。csplit で使用できるさまざまなフラグを使用して、必要に応じて出力を変更することもできます。
csplit を使用して Linux でファイルを分割する方法を次に示します。
csplit とは?
Linux およびその他の Unix ライクなオペレーティング システムで使用される csplit は、コンテキスト行によって決定される個々のファイルにファイルを分割できます。
コマンドの基本的な構文は次のとおりです。
csplit [OPTION] [PATTERN]
csplit と split
ほとんどの Linux ユーザーは、ファイルを複数の小さなファイルに分割する場合、split コマンドを使用することを好みます。このコマンドの問題点は、ファイルを分割するためにバイト サイズまたはライン サイズに依存していることです。
これは、サイズではなくコンテンツに基づいてファイルを分割するシナリオでは実行できません。これは、バイト数ではなくコンテンツに基づいてファイルを固定サイズのチャンクに分割する csplit が助けになるときです。
Linux に csplit をインストールする方法
csplit は、ほぼすべての Linux ディストリビューションにプリインストールされています。ただし、「csplit: コマンドが見つかりません」というエラーが表示された場合は、ツールがシステムにインストールされていないことを意味します。csplit を Ubuntu にインストールするには、次のコマンドを実行します。
sudo apt-get install coreutils
Arch Linux では、次を実行します。
sudo pacman -S coreutils
Fedora と RHEL に csplit をインストールするには:
sudo dnf install coreutils
Linux で csplit を使用する方法
csplit の動作を確認するには、システムにテキスト ファイルを作成します。touch コマンドを使用して空のファイルを作成します。
touch filename.txt
ファイルを作成したら、nano エディターで開いて内容を変更します。
nano filename.txt
ファイルにコンテンツを追加したら、Ctrl + Xキーを押してからYキーを押して、ファイルを保存して閉じます。
cat コマンドを使用してファイルの内容を確認するには、次のコマンドを実行します。
cat filename
csplit コマンドを使用してファイルを分割する
csplit がどのように機能するかを理解するには、まずここで例として使用されているファイルの内容を見てください。
このファイルには 1 から 9 までの 9 行が含まれています。ファイルを 2 つに分割する必要がある場合、最初のファイルに送信する内容と別のファイルに送信する内容を csplit にどのように指示しますか? 簡単だ。コマンドでは、どの行から分割を開始するかを csplit に指示するだけです。
これは、行番号を指定することによって行われます。たとえば、「London」という単語を含む 3 行目からファイルを分割する場合は、コマンドで 3 を指定します。次のようにコマンドを入力します。
csplit filename.txt 3
このコマンドは、ファイルを即座に 2 つに分割します。ls コマンドを使用してすべてのディレクトリの内容を一覧表示し、出力ファイルを表示します。元のファイルの横にxx00とxx01という名前の新しいファイルがあります。
cat コマンドを使用して、両方のファイルの内容を確認します。
ご覧のとおり、csplit は、コマンドで指定された 3 行目からファイルを 2 つの部分に分割します。
csplit コマンド オプション
使用できる csplit コマンドライン オプションの一部を次に示します。
1. 出力ファイルのプレフィックスを変更する
プレフィックス フラグとも呼ばれる-fは、ファイル名のプレフィックスを変更します。csplit がファイルを分割するときに、作成された新しいファイルのファイル名にプレフィックスとしてxxが付いていることに気付いたかもしれません。これは、コマンドで-fフラグを使用して変更できます。
たとえば、ファイル名のプレフィックスとしてxxではなくabcを使用する場合は、次のようにコマンドを発行します。
csplit -f abc filename.txt 3
ご覧のとおり、分割後、両方のファイルの名前のプレフィックスとしてabcが含まれています。
2. エラーが発生した場合にファイルを保持する
csplit コマンドにエラーがある場合、-kまたは–keep-filesオプションは出力ファイルを削除しません。
次の誤ったコマンドを発行します。
csplit -k randomfile.txt 2 {3}
3. ファイル名の桁数を変更する
このオプションを使用すると、プレフィックスに続くファイル名に表示する桁数を csplit コマンドに指定できます。数字フラグとも呼ばれます。
次のコマンドを発行して、ファイル名に 1 桁のみを保持します。
csplit -n 1 randomfile.txt 2
-nフラグを指定しないと、デフォルトでファイル名に 2 桁が表示されます。
4.サイズカウントを出力せずにファイルを分割する
quiet フラグとも呼ばれる-sフラグは、出力ファイルのサイズ カウントに言及せずにファイルをサイレントに分割します。
csplit -s randomfile.txt 3
5. コマンドライン ヘルプを表示する
csplit で使用可能なすべてのオプションの詳細を表示するには、コマンドで-hまたは–helpフラグを使用します。
csplit --help
6. csplit のバージョン番号を確認する
使用している csplit のバージョンを確認するには、–versionフラグを指定してコマンドを実行します。
csplit --version
7.分割中に特定の行を省略する
–suppress-matchedコマンドライン オプションを使用して、ファイルを分割するときに特定の行を省略することもできます。
csplit --suppress-matched filename.txt 5
2 つのファイルの作成中、csplit は 5 行目を無視し、次の行からファイルを分割します。
元のファイルの 5 行目には「Berlin」という単語があります。出力ファイルでは、「Berlin」が省略されています。
Linux で 1 つのコマンドで簡単にファイルを分割する
Linux システム上のファイルを管理するために使用できるコマンドライン ユーティリティは多数あります。それらの 1 つが csplit です。デフォルトでは、すべての Linux システムで使用できます。そうでない場合は、コマンドラインから簡単にインストールできます。
csplit は、ファイルの内容に基づいてファイルを分割する必要がある場合に、ファイルを簡単かつ効率的に分割する方法です。csplit には、さまざまなコマンド ライン オプションが用意されており、必要に応じて出力を柔軟に調整できます。分割後にファイルを確認する場合は、Linux でファイルの内容を表示するコマンド ライン ツールがいくつかあります。
コメントを残す