split

提供: FreeBSD入門
2016年10月23日 (日) 17:54時点におけるDaemon (トーク | 投稿記録)による版

(差分) ←前の版 | 最新版 (差分) | 次の版→ (差分)
移動: 案内検索
スポンサーリンク

split とは、1つのファイルを複数のファイルに分割するコマンドです。行単位、バイト単位で分割できます。分割元のファイルは、変更されず、残ります。

読み方

split
すぷりっと

概要

並列で処理したいファイルが存在するときに、split コマンドを使用して、ファイルを分割する、といった使い方ができます。

使い方

コマンドラインオプション

usage: split [-l line_count] [-a suffix_length] [file [prefix]]
       split -b byte_count[K|k|M|m|G|g] [-a suffix_length] [file [prefix]]
       split -n chunk_count [-a suffix_length] [file [prefix]]
       split -p pattern [-a suffix_length] [file [prefix]]

バイト単位指定でファイルを分割する

src.txt は、最後に改行があります。12文字+改行の13バイトのファイルです。

% cat ../src.txt
aaabbbcccddd
% split -b 3 ../src.txt
% ls
xaa  xab  xac  xad  xae
% ll
total 20
-rw-r--r--  1 root  wheel  3  915 17:30 xaa
-rw-r--r--  1 root  wheel  3  915 17:30 xab
-rw-r--r--  1 root  wheel  3  915 17:30 xac
-rw-r--r--  1 root  wheel  3  915 17:30 xad
-rw-r--r--  1 root  wheel  1  915 17:30 xae
% cat xaa
aaa%cat xab
bbb% cat xae
 
%

行指定でファイルを分割する

9行のファイル num.txt があります。これを3行ごとにファイルに分割します。splitコマンドによって3つのファイルが作成されます。

% cat ../num.txt
1
2
3
4
5
6
7
8
9
% split -l 3 ../num.txt
% ls
xaa  xab  xac
% ll
total 12
-rw-r--r--  1 root  wheel  6  915 17:34 xaa
-rw-r--r--  1 root  wheel  6  915 17:34 xab
-rw-r--r--  1 root  wheel  6  915 17:34 xac
% cat xaa
1
2
3
% cat xab
4
5
6
% cat xac
7
8
9

ファイルのプレフィックスを指定する

% split -l 3 ../num.txt num.
% ls
num.aa  num.ab  num.ac

作成されるファイルのアルファベットを数字に変更できない

残念ながらこのオプションは、 FreeBSD の split コマンドには存在しないようです。 Linux 版では、 -d オプションで、数字に変更できます。

将来的には、サポートされることがあるかもしれませんね。

関連項目




スポンサーリンク