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

第4章 PowerSORTのbsortコマンドを使用する> 4.2 bsortコマンドオプション

4.2.10 キーフィールドオプション(-key-def)

キーフィールドを指定します。
1つのキーフィールドは、位置、長さ、データ形式および操作で構成されます。
複数のキーフィールドを指定した場合、指定した順に比較が行われます。複数のキーフィールドを指定する場合は、キーフィールドをコンマ( , )で区切って指定します(-key-def,key-def )。また、1つ前のキーフィールドの指定に続けて指定(-key-def key-def )したり、キーフィールドオプションを複数指定することもできます(-key-def -key-def )。
キーフィールドの指定を省略すると、レコード全体をキーフィールドとみなしてコードの昇順に並べます。キーフィールドを省略して降順に並べる場合は、降順オプション(-r)を使用します。

■記述形式

-key-def [ ,key-def ...]

key-def の記述形式

pos.len typ opt

pos

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

len

キーフィールドの長さをピリオド( . )に続けて指定します。
テキストファイル浮動フィールド指定の場合、指定したフィールド長よりも実際のフィールドが長いときは、ここで指定した長さで処理します。指定したフィールド長よりも実際のフィールドが短い場合は、実際のフィールド長で処理されます。
typ に符号なし2進数を指定する場合は、len にはマスク値を10進数で指定します。フィールド値とマスク値の論理積をキー値にします。例えば、符号なし2進数を指定する場合、フィールド値が0x8e、マスク値が3(0x03)のとき、キー値は0x02になります。
指定可能なデータ形式の長さについては、キーフィールドに指定可能なデータ形式を参照してください。

typ

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

opt

キーフィールドの操作をtyp に続けて指定します。
複数の操作を指定する場合は、続けて記述します。バイナリファイルの場合は、a、lおよび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形式で、入力コード系オプション(-q)が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以外を指定することはできません。

■記述例

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

-0.10asca


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

All Rights Reserved, Copyright(C) 富士通株式会社 1992-2007