(動画教材準備中)
nsplit : キーによるファイル分割
Usage : nsplit <n> key=<key> <template>
<file1> <file2> ...
Version : Tue Jan 14 17:57:12 JST 2014
<file1> <file2> ... をキーによって <n> 個のファイルに分割します。出力ファイルは、キー値が均等に分散されるように分割されます。<key> で指定できるフィールドは1つのみで、固定長の符号無し10進数と解釈されます。キーの桁数は18桁以下です。
<template> で出力ファイルのパス名を指定します。<template> には、"%from" と "%to" の文字列が1つずつ含まれていなければなりません。前者はそのファイルのキーの下限値に、後者は上限値に、それぞれ置換されます。
入力ファイルが指定されなかった場合と、入力ファイルに "-" が指定され場合は標準入力が読み込まれます。
$ cat file1
07 xxx
03 xxx
00 xxx
$ cat file2
01 yyy
06 yyy
02 yyy
$ cat file3
09 zzz
05 zzz
04 zzz
$ nsplit 5 key=1 result.%from_%to file1 file2 file3
$ cat result.00_01
01 yyy
00 xxx
$ cat result.02_03
02 yyy
03 xxx
$ cat result3.04_05
05 zzz
04 zzz
$ cat result4.06_07
06 yyy
07 xxx
$ cat result5.08_09
09 zzz
$ cc -static -fopenmp -O3 -o /home/UTL/nsplit nsplit.c
並列処理を行っているため、出力ファイルの行の順序は不定です。同じ入力ファイルであっても、実行する度毎に順序が変わることもあります。