代表的な機能を使った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だけに出力されます。