ページの先頭行へ戻る
PowerSORT V7.0 ユーザーズガイド
FUJITSU Software

A.2 bsortexコマンドの使用例

代表的な機能を使ったbsortexコマンドの使用例を示します。

例1 ソート処理の例

レコード長が100バイトのバイナリ固定長ファイルbsortinのレコードをソートして、ファイルbsortoutに出力します。キーフィールドは、レコードの先頭から長さ10バイトのASCIIコードのフィールドを昇順に並べる指定です。

コマンド記述例
bsortex -sort key=0.10asca -input reclen=100 file=bsortin -output file=bsortout

  -sort           : ソート機能
    key=0.10asca  : キーフィールド
  -input
    reclen=100    : レコード長
    file=bsortin  : 入力ファイル名
  -output
    file=bsortout : 出力ファイル名

例2 マージ処理の例

レコード長が100バイトのバイナリ固定長ファイルbsortin1とbsortin2のレコードをマージして、ファイルbsortoutに出力します。ファイルbsortin1とbsortin2は、それぞれレコードの先頭から長さ10バイトのASCIIコードのフィールドを昇順にソートしたファイルです。

コマンド記述例
bsortex -merge key=0.10asca -input reclen=100 file=bsortin1,bsortin2 -output file=bsortout

  -merge                   : マージ機能
    key=0.10asca           : キーフィールド
  -input
    reclen=100             : レコード長
    file=bsortin1,bsortin2 : 入力ファイル名
  -output
    file=bsortout          : 出力ファイル名

例3 コピー処理の例

レコード長が100バイトのバイナリ固定長ファイルbsortinのレコードを、富士通COBOLのレコード順ファイルbsortoutにコピーします。

コマンド記述例
bsortex -copy -record recform=fix -input reclen=100 file=bsortin filesys=ufs -output file=bsortout filesys=cobs64

  -copy            : コピー機能
  -record
    recform=fix    : レコード形式
  -input
    reclen=100     : レコード長
    file=bsortin   : 入力ファイル名
    filesys=ufs    : 入力ファイルシステム
  -output
    file=bsortout  : 出力ファイル名
    filesys=cobs64 : 出力ファイルシステム

例4 レコード選択機能を使った例

レコード長が100バイトのバイナリ固定長ファイルbsortin1とbsortin2のレコードをマージして、富士通COBOLのレコード順ファイルbsortoutに出力します。入力ファイルは、21バイト目から長さ4バイトの固定小数点2進数のフィールドが昇順にソートされているものとします。さらに、マージの際、31バイト目から長さ4バイトの固定小数点2進数の値が30以上40未満のレコードだけを処理の対象とします。

コマンド記述例
bsortex -merge key=20.4fbia -record recform=fix -input reclen=100 file=bsortin1,bsortin2 filesys=ufs include=30.4fbi.ge.d30.and.30.4fbi.lt.d40 -output file=bsortout filesys=cobs64

  -merge                                      : マージ機能
    key=20.4fbia                              : キーフィールド
  -record
    recform=fix                               : レコード形式
  -input
    reclen=100                                : レコード長
    file=bsortin1,bsortin2                    : 入力ファイル名
    filesys=ufs                               : 入力ファイルシステム
    include=30.4fbi.ge.d30.and.30.4fbi.lt.d40 : 選択フィールド
  -output
    file=bsortout                             : 出力ファイル名
    filesys=cobs64                            : 出力ファイルシステム

例5 レコード再編成機能を使った例

レコード長が100バイトのバイナリ固定長ファイルbsortinのレコードをソートして、ファイルbsortoutに出力します。キーフィールドの指定は、レコードの11バイト目から長さ20バイトのASCIIコードのフィールドを降順に並べる指定です。さらに、ソート処理と同時にレコードを再編成します。再編成は、レコードの左端に入力レコードの11バイト目から長さ20バイトを、その右に外部10進数の形式で長さ10バイトのフィールドを置き、その値に0を設定するという指定です。

コマンド記述例
bsortex -sort key=0.20ascr -input reclen=100 file=bsortin reconst=10.20,d0.10zdl -output file=bsortout

  -sort                    : ソート機能
    key=0.20ascr           : キーフィールド
  -input
    reclen=100             : レコード長
    file=bsortin           : 入力ファイル名
    reconst=10.20,d0.10zdl : 再編成フィールド
  -output
    file=bsortout          : 出力ファイル名

ポイント

入力ファイルのレコード再編成機能を指定する場合、キーフィールドはレコード再編成後の位置を指定します。

例6 レコード集約機能を使った例

レコード長が100バイトのバイナリ固定長ファイルbsortinのレコードをソートして、ファイルbsortoutに出力します。キーフィールドの指定は、レコードの11バイト目から長さ20バイトのASCIIコードのフィールドを降順に並べる指定です。ソート処理の際、キーフィールドが等しいレコードが現れた場合、集約フィールドで指定した51バイト目から長さ8バイトの内部10進数のフィールドを加算して、最初に入力したレコードに集約します。

コマンド記述例
bsortex -sort key=10.20ascr -input reclen=100 file=bsortin -summary field=50.8pdl first -output file=bsortout

  -sort           : ソート機能
    key=10.20ascr : キーフィールド
  -input
    reclen=100    : レコード長
    file=bsortin  : 入力ファイル名
  -summary
    field=50.8pdl : 集約フィールド
    first         : 最初に入力したレコードに集約
  -output
    file=bsortout : 出力ファイル名

例7 サプレス機能を使った例

レコード長が100バイトのバイナリ固定長ファイルbsortinのレコードをソートして、ファイルbsortoutに出力します。キーフィールドの指定は、レコードの11バイト目から長さ20バイトのASCIIコードのフィールドを降順に並べる指定です。ソート処理の際、キーフィールドが等しいレコードが現れた場合、最後に入力したレコードを残して他を削除します。

コマンド記述例
bsortex -sort key=10.20ascr -input reclen=100 file=bsortin -summary suppress last -output file=bsortout

  -sort           : ソート機能
    key=10.20ascr : キーフィールド
  -input
    reclen=100    : レコード長
    file=bsortin  : 入力ファイル名
  -summary
    suppress      : サプレス機能
    last          : 最後に入力したレコードを残す
  -output
    file=bsortout : 出力ファイル名

例8 先入力先出力(FIFO)機能を使った例

レコード長が100バイトのバイナリ固定長ファイルbsortinのレコードをソートして、ファイルbsortoutに出力します。キーフィールドの指定は、レコードの11バイト目から長さ20バイトのASCIIコードのフィールドを降順に並べる指定です。ソート処理の際、キーフィールドが等しいレコードが現れた場合、入力ファイルに格納されていた順序で出力します。

コマンド記述例
bsortex -sort key=10.20ascr -input reclen=100 file=bsortin -output file=bsortout -option fifo

  -sort           : ソート機能
    key=10.20ascr : キーフィールド
  -input
    reclen=100    : レコード長
    file=bsortin  : 入力ファイル名
  -output
    file=bsortout : 出力ファイル名
  -option
    fifo          : 先入力先出力(FIFO)機能

9 テキストファイルをソートする例(固定フィールド指定)

最大レコード長が100バイトのテキストファイルbsortinのレコードをソートして、テキストファイルbsortoutに出力します。キーフィールドの指定は、レコードの9バイト目から長さ4バイトのASCIIコードのフィールドを昇順に並べる指定です。

コマンド記述例
bsortex -sort key=8.4asca -record recform=txtfix -input reclen=100 file=bsortin -output file=bsortout

  -sort            : ソート機能
    key=8.4asca    : キーフィールド
  -record
    recform=txtfix : レコード形式(テキストファイル固定フィールド指定)
  -input
    reclen=100     : レコード長
    file=bsortin   : 入力ファイル名
  -output
    file=bsortout  : 出力ファイル名

例10 テキストファイルをソートする例(浮動フィールド指定)

最大レコード長が100バイトのテキストファイルbsortinのレコードをソートして、テキストファイルbsortoutに出力します。キーフィールドの指定は、レコード分離文字「コロン(:)」で区切られた2番目のフィールドの先頭から長さ4バイトのASCIIコードのフィールドを昇順に並べる指定です。

コマンド記述例
bsortex -sort key=1.4asca -record recform=txtflt fldsep=: -input reclen=100 file=bsortin -output file=bsortout

  -sort            : ソート機能
    key=1.4asca    : キーフィールド
  -record
    recform=txtflt : レコード形式(テキストファイル浮動フィールド指定)
    fldsep=:       : フィールド分離文字
  -input
    reclen=100     : レコード長
    file=bsortin   : 入力ファイル名
  -output
    file=bsortout  : 出力ファイル名

例11 ファイルの分割出力機能を使った例

レコード長が100バイトのバイナリ固定長ファイルbsortinのレコードをソートして、ファイルbsortout1とbsortout2に出力します。出力ファイルサイズの上限は1GBとします。キーフィールドの指定は、レコードの先頭から長さ10バイトのASCIIコードのフィールドを昇順に並べる指定です。

コマンド記述例
bsortex -sort key=0.10asca -input reclen=100 file=bsortin -output file=bsortout1,bsortout2 maxfilesize=1G

  -sort                      : ソート機能
    key=0.10asca             : キーフィールド
  -input
    reclen=100               : レコード長
    file=bsortin             : 入力ファイル名
  -output
    file=bsortout1,bsortout2 : 出力ファイル名
    maxfilesize=1G           : 出力ファイルサイズの上限値の設定

例12 条件別ファイル出力機能を使った例(その1)

レコード長が100バイトのバイナリ固定長ファイルbsortinのレコードをソートして、ファイルbsortout1とbsortout2に出力します。bsortout1には、レコードの31バイト目から長さ4バイトの内部10進数のフィールドが100以上のレコードを出力します。bsortout2には、レコードの51バイト目から長さ8バイトの外部10進数のフィールドが50未満のレコードを出力します。キーフィールドの指定は、レコードの先頭から長さ10バイトのASCIIコードのフィールドを昇順に並べる指定です。

コマンド記述例
bsortex -sort key=0.10asca -input reclen=100 file=bsortin -output file=bsortout1 include=30.4pdl.ge.d100 -output file=bsortout2 include=50.8zdl.lt.d50

  -sort                     : ソート機能
    key=0.10asca            : キーフィールド
  -input
    reclen=100              : レコード長
    file=bsortin            : 入力ファイル名
  -output
    file=bsortout1          : 出力ファイル名
    include=30.4pdl.ge.d100 : 選択フィールド
  -output
    file=bsortout2          : 出力ファイル名
    include=50.8zdl.lt.d50  : 選択フィールド

ポイント

includeオペランドでは、それぞれの-outputオプションで指定した選択条件が成立したレコードを、それぞれの出力ファイルへ出力します。したがって、上記の例では、レコード3はbsortout1にもbsortout2にも出力されます。

例13 条件別ファイル出力機能を使った例(その2)

レコード長が100バイトのバイナリ固定長ファイルbsortinのレコードをソートして、ファイルbsortout1、bsortout2、およびbsortout3に出力します。bsortout1には、レコードの31バイト目から長さ4バイトの内部10進数のフィールドが100以上のレコードを出力します。bsortout2には、bsortout1に出力されなかったレコードの中からレコードの51バイト目から長さ8バイトの外部10進数のフィールドが50未満のレコードを出力します。bsortout3には、bsortout1にもbsortout2にも出力されなかったレコードを出力します。キーフィールドの指定は、レコードの先頭から長さ10バイトのASCIIコードのフィールドを昇順に並べる指定です。

コマンド記述例
bsortex -sort key=0.10asca -input reclen=100 file=bsortin -output file=bsortout1 case=30.4pdl.ge.d100 -output file=bsortout2 case=50.8zdl.lt.d50 -output file=bsortout3 case=other

  -sort                  : ソート機能
    key=0.10asca         : キーフィールド
  -input
    reclen=100           : レコード長
    file=bsortin         : 入力ファイル名
  -output
    file=bsortout1       : 出力ファイル名
    case=30.4pdl.ge.d100 : 選択フィールド
  -output
    file=bsortout2       : 出力ファイル名
    case=50.8zdl.lt.d50  : 選択フィールド
  -output
    file=bsortout3       : 出力ファイル名
    case=other           : 選択フィールド(出力されなかったレコードを出力)

ポイント

caseオペランドでは、-outputオプションの指定順に選択条件と比較し、条件が成立したレコードを、その-outputオプションで指定した出力ファイルへ出力します。既に出力されたレコードは、以降の-outputオプションでは出力対象となりません。したがって、上記の例では、レコード3はbsortout1だけに出力されます。