PowerSORT V4.0 使用手引書
目次 索引 前ページ次ページ

第4章 PowerSORTのbsortexコマンドを使用する> 4.2 bsortexコマンドオプション> 4.2.6 マージオプション(-merge)

4.2.6.1 keyオペランド

キーフィールドを指定します。
複数のキーフィールドを指定した場合、指定した順に比較が行われます。
keyオペランドを省略した場合、レコード全体をキーフィールドとみなし、コード順に並べます。

■記述形式

key=key-definition [ ,key-definition ...] [ key= ...]

key-definition の記述形式

以下にkey-definition の記述形式を示します。

[key-definition の記述形式1]

pos.len typ [ opt ]

[key-definition の記述形式2]

ALL [ opt ]

pos

キーフィールドの位置を指定します。
バイナリファイルとテキストファイル固定フィールド指定の場合は、レコードの先頭を0としたバイト位置を指定し、テキストファイル浮動フィールド指定の場合は、0から数えたフィールド番号を指定します。

len

キーフィールドの長さをバイト数で指定します。
テキストファイル浮動フィールド指定の場合、指定したフィールド長よりも長いフィールドが現れた場合は、指定したフィールド長で処理します。指定したフィールド長よりも短いフィールドが現れた場合は、実際のフィールド長で処理します。
typ に符号なし2進数を指定する場合は、1バイト分のビットを選択するためのマスク値を10進数でlen に指定します。このとき、pos の位置にある1バイトのフィールド値とマスク値の論理積がキー値になります。
指定可能なデータ形式ごとの長さについては、キーフィールドに指定可能なデータ形式を参照してください。

typ

キーフィールドのデータ形式をlen に続けて指定します。
指定可能なデータ形式については、キーフィールドに指定可能なデータ形式を参照してください。

opt

キーフィールドの操作をtyp に続けて指定します。
複数の操作を指定する場合は、続けて記述します。バイナリファイルの場合は、a、lおよびrが指定できます。テキストファイルの場合は、a、b、d、i、j、l、n、Nおよびrが指定できます。aとrを両方とも省略した場合は、aを指定したものとして動作します。指定可能な操作を以下に示します。

[キーフィールドの操作の種類]

opt

意味

a

昇順に並べます。rと排他関係にあります。

b

キーフィールドの先頭の空白とタブを無視します。

d

空白と英数字だけを比較の対象とします。

i

制御文字コードを無視します。
EUCコードのシングルシフト2(SS2)0x8eおよびシングルシフト3(SS3)0x8fは、ASCIIコード指定の場合は制御文字、EUCコード指定の場合は文字とみなされます。

j

英小文字を英大文字として比較します。

l

環境変数LC_COLLATEで定義した照合順序に並べます。
データ形式がASCIIコード、EUCファイルコード、EUC2バイトプロセスコード、EUC4バイトプロセスコードまたはUnicode UTF-8形式で、入力ファイルのコード系(実行環境オプション(-option)のicodeオペランド)がEBCDICコード系以外の場合に指定できます。
nおよびNとは排他関係にあります。

n

符号を含んだ数字の文字列を算術的な値で比較します。
文字列中に数字以外の文字が存在した場合の結果は保証されません。データ形式がASCIIコード、EBCDICコード、Unicode UCS-2形式またはUnicode UTF-8形式の場合に指定できます。
lおよびNとは排他関係にあります。

N

英字と数字の連結データ(例えば、data123など)を英字と数値に分けて評価し並べます。
英字だけを比較の対象として比較後、数字だけの文字列を算術的な値で比較します。指定フィールドの左から評価し、有効データ後に出現したデータは無視します。データ形式がASCIIコード、EBCDICコード、Unicode UCS-2形式またはUnicode UTF-8形式の場合に指定できます。
lおよびnとは排他関係にあります。

r

降順に並べます。aと排他関係にあります。

キーフィールドのデータ形式に照合順序変更を指定した場合、キーフィールドの操作にaまたはr以外を指定することはできません。

◆ALL

レコード全体をキーフィールドとする場合に指定します。
続けて記述するキーフィールドの操作の指定がなければ、keyオペランドを省略できます。

■記述例

例1) レコードの先頭から10バイトのASCIIコードのフィールドを昇順に並べる場合は、次のように指定します。

key=0.10asca

例2) レコード全体をキーとして降順に並べる場合は、次のように指定します。

key=ALLr


目次 索引 前ページ次ページ

All Rights Reserved, Copyright(C) 富士通株式会社 2005