Linux,1つのファイルを複数に分割する際、数値を付加する

スポンサーリンク

鍛錬 438

Linux,1つのファイルを複数に分割する際、数値を付加する

1つのファイルを、行数を指定して複数に分割し、分割後のファイル名を指定し、分割後のファイル名に桁数を指定して数値を1ずつ加算(インクリメント)しながら付加するには、split を使用します。
 
使用方法は、以下に示す通りです。
 

split -l 分割する行数 -a 分割後ファイル名に付加する数値の桁数 -d --additional-suffix=分割後ファイル名の末尾 分割前のファイル名 分割後ファイル名の先頭部分

オプション

以下は、上記のオプションについてです。

オプション 機能
-l 行数 分割する行数を指定する
-a 文字数 分割後ファイル名に付加する文字数を指定する
-d 分割後ファイル名に文字ではなく数字を付加する
--additional-suffix=文字列 分割後ファイル名の末尾を指定する
スポンサーリンク

サンプルファイル

以下は、今回分割するサンプルファイル sample.txt です。

合計10行です。

000
111
222
333
444
555
666
777
888
999
スポンサーリンク

実行結果

以下は、サンプルファイル「sample.txt」を「2行」で分割し、さらに分割後のファイル名を「ABC_数値.txt」に指定し、さらに分割後のファイル名に「3桁」の数値を1ずつ加算(インクリメント)しながら付加しています。

***@ubuntu:~/***/test/tmp$ 
***@ubuntu:~/***/test/tmp$ ls
sample.txt
***@ubuntu:~/***/test/tmp$ 
***@ubuntu:~/***/test/tmp$ 
***@ubuntu:~/***/test/tmp$ cat sample.txt
000
111
222
333
444
555
666
777
888
999
***@ubuntu:~/***/test/tmp$ 
***@ubuntu:~/***/test/tmp$ 
***@ubuntu:~/***/test/tmp$ split -l 2 -a 3 -d --additional-suffix=.txt sample.txt ABC_
***@ubuntu:~/***/test/tmp$ 
***@ubuntu:~/***/test/tmp$ 
***@ubuntu:~/***/test/tmp$ ls
ABC_000.txt  ABC_001.txt  ABC_002.txt  ABC_003.txt  ABC_004.txt  sample.txt
***@ubuntu:~/***/test/tmp$ 
***@ubuntu:~/***/test/tmp$ 
***@ubuntu:~/***/test/tmp$ cat ABC_000.txt
000
111
***@ubuntu:~/***/test/tmp$ cat ABC_001.txt
222
333
***@ubuntu:~/***/test/tmp$ cat ABC_002.txt
444
555
***@ubuntu:~/***/test/tmp$ cat ABC_003.txt
666
777
***@ubuntu:~/***/test/tmp$ cat ABC_004.txt
888
999

 
上記に示した通り、ABC_000.txt ~ ABC_004.txt の、5つのファイルに分割することができました。

タイトルとURLをコピーしました