はじめに
Linux split
コマンドは、ファイルを小さな部分に分割し、行数の多い大きなテキスト ファイルを分析するために使用されます。各分割ファイルはデフォルトで 1000 行をカウントしますが、サイズは変更可能です。
このガイドでは、Linux split
の使用方法を学びます。 コマンドと例。

要件
- 端末回線へのアクセス
- 大きなテキスト ファイル (このチュートリアルでは、large_text、small_text、tiny_text ファイルを使用します)。
Linux 分割コマンドの構文
基本的な split
構文は次のとおりです:
split [options] [file] [prefix]
split
コマンドは、ターゲット ファイルをインクルードしないと実行できません。プレフィックスの指定はオプションです。プレフィックスが指定されていない場合、split
デフォルトでは x を使用します プレフィックスとして、次のように作成されたファイルに名前を付けます:xaa ,xab 、xac など
Linux 分割コマンド オプション
split
コマンドは多くのオプションをサポートしています。最も一般的な split
コマンド オプションは次のとおりです。
オプション | 説明 |
---|---|
-a | サフィックスの長さを設定します。 |
-b | 出力ファイルごとのサイズを決定します。 |
-C | 出力ファイルごとの最大サイズを決定します。 |
-d | デフォルトのサフィックスを数値に変更します。 |
-e | 空の出力ファイルの作成を省略します。 |
-l | 特定の出力行数でファイルを作成します。 |
-n | 特定の数の出力ファイルを生成します。 |
--verbose | 詳細な出力を表示します。 |
Linux 分割コマンドの例
split
コマンドを使用すると、ユーザーは Linux で大きなファイルを分割して操作できます。このコマンドは実際によく使用され、13 の一般的な使用例が以下で説明されています。
ファイルを分割
split
の基本的な使い方 大きなファイルを小さな 1000 行のチャンクに分割することです。たとえば、large_text を分割します。 ファイルを開き、ls:で出力を確認します。
split large_text
ls

ls コマンドは、xaa から 13 個の新しいファイルを表示します xam へ . -l
で wc を使用して各ファイルの行数を確認します フラグ:
wc -l large_text xa*

ターゲット ファイル、large_text 、長さは 13000 行です。 split
コマンドは、それぞれ 1000 行を含む 13 個のファイルを作成します。対象ファイルの行数が 1000 で割り切れない場合、split
最後の行を除いて、ファイルごとに 1000 行をカウントします。最後のファイルは行数が少なくなっています。
たとえば、smaller_text ファイル smaller_directory 内 12934 行あります:

smaller_text を分割 ls
を使用します 結果を確認するには:
split smaller_text
ls

ターゲット ファイルが分割されたら、wc -l
を実行します。 もう一度:
wc -l smaller_text xa*

出力は、最後のファイルには 934 行あるのに対し、他の 12 行はそれぞれ 1000 行あることを示しています。
冗長オプションを使用する
split
コマンドは何も出力しません。 --verbose
を使用 split
の追跡 動作します。 split
を実行中 --verbose
で 詳細を表示:
split large_ text --verbose

ファイルごとの行数の設定
デフォルトの 1000 行ルールをバイパスするには、-l
を使用します split
のフラグ . split -l
コマンドを使用すると、ユーザーはファイルごとの行数を設定できます。
たとえば、split -l2500
を実行します。 それぞれ 2500 行を含むファイルを作成し、wc
で行数を確認するには :
split -l2500 large_text
wc -l large_text xa*

このコマンドは、6 つの新しいファイルを作成します。ファイル xaa xae へ それぞれ 2500 行あり、ファイル xaf 500 行、合計 13000 行あります。
split -l
コマンドは、1000 行未満のファイルを作成することもできます。たとえば、tiny_text ファイルには 2693 行あります:

テキストを 500 行のファイルに分割:
split -l500 tiny_text

このコマンドは、500 行のファイルを 5 つと、193 行のファイルを 1 つ出力します。
ファイル サイズの選択
split -b
を使用して、サイズに基づいてファイルを分割します .このコマンドは、番号 (n
) に基づいてファイルを作成します。 ) の:
split -bn
のバイト数 .split
のキロバイト-bnK
.split -bnM
のメガバイト .split -bnG
のギガバイト .
たとえば、large_text から 1500Kb のファイルを作成します と:
split -b1500K large_text --verbose

--verbose
オプションは、split -bnK
を示しています 6 つのファイルを作成しました。ファイル サイズを確認するには、wc -c
を使用します :
wc -c large_text xa*

出力は、5 つのファイルがそれぞれ 1 536 000 バイトであり、6 番目のファイルが 56 957 バイトの長さであることを示しています。
最大サイズを指定
-C
を使用 出力ファイルごとの最大サイズを設定します。たとえば、large_text を分割します 出力サイズを 2MB に設定:
split large_text -C 2MB

wc -c
コマンドは分割を示しています 4 つの新しいファイルが作成され、最初の 3 つのファイルは約 2 MB で、4 つ目のファイルはそれよりも小さいことがわかりました。
出力ファイル数の設定
-n
を使用 split
で 出力ファイルの数を決定します。たとえば、large_text を分割します 10 の部分に:
split large_text -n 10

行末でファイルを分割
別の -n
使用法は、完全な行の終わりでファイルを分割しています。これを行うには、-n
を組み合わせます l
で .たとえば、ファイル large_text を分割します 10 個のファイルに分割され、次の完全な行で終わります:
split -n l/10 large_text

ls
コマンドは、新しく作成された 10 個のファイルを表示します。 cat
を実行 任意のファイルで、ファイルが完全な行で終わっていることを確認します:

指定した出力ファイルのみを表示
split
コマンドは、デフォルトで、ソース ファイル全体をカバーするために必要な数のファイルを作成します。ただし、 -n
を使用 split
で ファイルを分割しますが、指定された部分のみを表示します。このフラグも出力ファイルを作成しませんが、出力を端末に出力します。
たとえば、分割 tiny_text 100 個のパーツに分けますが、最初のパーツのみを次のように表示します:
split -n 1/100 tiny_text

このコマンドは、新しいファイルを作成せずに、最初の分割ファイルを標準出力に出力します。
サフィックスの長さを設定
split
コマンドは、2 文字のデフォルトのサフィックスを持つファイルを作成します。 -a
を追加して長さを変更します 分割するフラグ。たとえば、サフィックスを 3 文字の長さにするには、次のように入力します。
split -a 3 large_text

接尾辞を変更
split
を使用 異なるサフィックスを持つファイルを作成します。たとえば、large_text を分割します 数値サフィックス付きの 2500 行のファイルに変換:
split -l2500 -d large_text

出力には、-d
で作成された番号付きサフィックスを持つ 6 つのファイルが表示されます 国旗。 -l2500
フラグは large_text を分割します 6 つの 2500 行のファイルにファイルします。
プレフィックスを変更
split
コマンドは、カスタマイズ可能な接頭辞を持つ出力ファイルも作成します。コマンドの構文は次のとおりです:
split [file] [prefix]
たとえば、large_text を分割します part00 という名前の 10 個のファイルに part09へ と:
split -d large_text part -n 10

プレフィックスが x から変更されました 別れる -d
により数字で終わります 国旗。 -n
flag はファイルを 10 個の部分に分割します。
サイズがゼロのファイルを除外
ファイルを分割すると、一部の出力でサイズがゼロのファイルが返されます。出力ファイルのサイズがゼロになるのを防ぐには、split
を使用します -e
で 国旗。たとえば、xaa を分割します。 tiny_directory のファイル ゼロサイズのファイルが省略されることを保証する数字の接尾辞が付いた 15 個のファイルに:
split -n15 -e -d xaa

wc -c
でファイル サイズを確認します :
wc -c x0* x1*

x0* の使用 と x1* 検索用語が wc -c
を保証するため 数字で始まるディレクトリ内のすべてのファイルのサイズを出力します。
分割されたファイルを再接続
split
の間 ファイルを再結合することはできません。別のオプションとして、Linux の cat コマンドがあります。さまざまなファイルのコンテンツを表示するために使用されます cat
また、分割されたファイルを新しい完全なドキュメントに再接続します。
たとえば、大きなテキスト は 10 個のファイルに分割されています:

すべての出力ファイルは x で始まります . cat
を適用 x で始まるすべてのアイテム それらをマージします。
ただし、cat
結果を標準出力に出力します。ファイルを新しいファイルにマージするには、>
を使用します 新しいファイル名:
cat x* > new_large_text

wc -c
を実行中 large_text であることを示しています と new_large_text は同じサイズです。
結論
この記事を読めば、Linux split
の使い方がわかります。 大きなドキュメントを操作するためのコマンド。次に、SCP コマンドを使用してファイルを安全にコピーおよび転送する方法を学びます。