splitはファイルを複数のファイルに分割するコマンドだ。
大きすぎるファイルを分割したり、扱いやすい大きさにしたりするのに利用する。
splitコマンドの基本
コマンドの基本動作
使い方は、次のとおりだ。
$ split オプション 元ファイル名 出力ファイルベースファイル名
出力するファイルの名前は出力ファイルベースファイル名にアルファベットが付与される。
オプションは後で詳しく説明するが、ファイルcode.phpを2行ごとにa_code+アルファベットというファイル名に分割する場合は、次のコマンドだ。
$ split -l 2 code.php a_code
ファイルcode.phpが2行ごとにa_codeaaからa_codeacまでの3ファイルに分割された。
splitコマンドのオプションたち
オプションの一覧
後から詳細をご紹介するが、まずは一覧で見てみよう。
オプション -b(オプション--bytes=SIZE)
バイト単位で分割する
オプション -l(オプション--lines=NUMBER)
行単位で分割する
オプション -a(オプション--suffix-length=N)
ベースファイル名に付与するアルファベットの文字数を指定する
オプション -d(オプション--numeric-suffixes)
ベースファイル名に付与するアルファベットを数字にする
オプション--verbose
ファイルの作成状況を表示する
-bオプション(--bytes=SIZEオプション):バイト単位で分割する
分割をバイト単位で行う。
書式は次のとおりだ。
$ split -b 20 元ファイル名 出力ファイルベースファイル名
ファイルcode.phpを20バイトごとにa_code+アルファベットというファイル名に分割する場合は、次のコマンドだ。
$ split -b 20 code.php a_code
ファイルcode.phpが20バイトごとにa_codeaaからa_codeacまでの3ファイルに分割された。
少し見づらいが、catコマンドの結果、改行が含まれず出力されている。これは、分割されたファイルの最終文字が改行ではなく、行の途中で分割されているためだ。
-lオプション(--lines=NUMBERオプション):行単位で分割する
コマンドの基本操作でも解説したが、-lオプションについて詳細を解説する。
-lオプションは行単位で分割する。
書式は次の通りだ。
$ split -l 行数 元ファイル名 出力ファイルベースファイル名
ファイルcode.phpを3行ごとにb_code+アルファベットというファイル名に分割する場合は、次のコマンドだ。
$ split -l 3 code.php b_code
ファイルcode.phpが3行ごとにb_codeaaとb_codeacの2ファイルに分割された。
-aオプション(--suffix-length=Nオプション):ベースファイル名に付与するアルファベットの文字数を指定する
オプションなしでは、出力されるファイル名に指定したベースファイル名に付与されるアルファベットの文字数は2文字だ。
分割するファイル数が少ない場合は、1文字でもよい場合もある。反対に分割するファイルが多い場合は、2文字では少ない場合もある。
そのような時に、文字数を設定するオプションで書式は次の通りだ。
$ split オプション -a アルファベットの文字数 元ファイル名 出力ファイルベースファイル名
ファイルcode.phpを3行ごとにc_code+1文字のアルファベットというファイル名に分割する場合は、次のコマンドだ。
$ split -l 3 -a 1 code.php c_code
出力ファイル名に付与されるアルファベットが1文字のみになっている。
-dオプション(--numeric-suffixesオプション):ベースファイル名に付与するアルファベットを数字にする
オプションなしでは、出力されるファイル名に指定したベースファイル名に付与されるのはアルファベットだ。
$ split オプション -d 元ファイル名 出力ファイルベースファイル名
ファイルcode.phpを3行ごとにc_code+数字というファイル名に分割する場合は、次のコマンドだ。
$ split -l 3 -d code.php c_code
作成したファイルを表示しながら分割する。書式は次の通りだ。
$ split オプション -- verbose 出力ファイルベースファイル名
ファイルcode.phpを作成したファイルを表示しながら3行ごとに分割する場合は、次のコマンドだ。
$ split -b 20 code.php a_code
出力ファイル名に付与される文字が数字になっている。
--verboseオプション:ファイルの作成状況を表示する
$ split -l 3 --verbose code.php c_code
作成するファイル名を表示しながらファイルを分割した。
split関連コマンド
最後にsplitコマンドに関連して、基本的なファイル管理のコマンドも紹介しておく。
sortコマンド
テキストファイルを並べ替えする。
cutコマンド
文字列を分離する。
uniqコマンド
重複行を削除する。
pasteコマンド
テキストファイルを列方向で結合する。
まとめ
このページでは、splitコマンドを使ったファイルの分割の方法を解説した。
近年では、大規模のディスク容量やネットワークが発展したことから、大容量のファイルのやりとりでファイルを分割しないと授受できないということはなくなった。
しかし、ログデータなどは膨大になることが多く、テキストエディタでデータを確認するには1ファイルにまとまっているよりも分割されていた方が便利なときがある。
分割後はgrepコマンドなどで検索しながら管理するとよい。
コメント