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

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

3.2.16 選択フィールドオプション(-p)

レコード選択機能を使用する場合に選択フィールド(選択条件)を指定します。
複数の選択フィールドを指定することもできます。コンマ( , )で区切って複数の選択フィールドを指定した場合は、選択条件の論理積となります。複数の選択フィールドオプションを指定した場合は、選択条件の論理和となります。

■記述形式

-p sel-def [ ,sel-def ...]

sel-def の記述形式

sel-def の記述形式には以下の2種類があります。

[sel-def の記述形式1]

pos.len typ opt.cmp.pos.len typ

cmp の左辺は被比較フィールドを、右辺は比較フィールドを示します。

[sel-def の記述形式2]

pos.len typ opt.cmp.self

cmp の左辺は被比較フィールドを、右辺は自己規定値を示します。

pos

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

len

被比較フィールドまたは比較フィールドの長さをバイト数で指定します。
詳細は被比較フィールドと比較フィールドに指定可能なデータ形式を参照してください。
テキストファイル浮動フィールド指定の場合、指定したフィールド長よりも長いフィールドが現れた場合は、指定したフィールド長で処理します。指定したフィールド長よりも短いフィールドが現れた場合は、実際のフィールド長で処理します。
データ形式に符号なし2進数を指定する場合は、マスク値を指定します。フィールド値とマスク値の論理積を比較します。マスク値は、被比較フィールドと比較フィールドに同じ値を指定します。

self

自己規定値を指定します。self の記述形式を以下に示します。なお、自己規定値の指定時にはsel-def 記述上の注意事項を参照してください。

[self の記述形式1]

'文字列 '

[self の記述形式2]

x16進数

[self の記述形式3]

d10進数

typ

被比較フィールドと比較フィールドのデータ形式を指定します。
詳細は被比較フィールドと比較フィールドに指定可能なデータ形式を参照してください。

opt

被比較フィールドの操作を指定します。
複数の操作を指定する場合は続けて記述します。指定可能な操作を以下に示します。b、d、i、jおよびnは、テキストファイルを処理する場合に指定できます。

opt

意味

b

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

d

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

i

制御文字コードを無視します。

j

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

n

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

w

複数バイトから成る文字が混在していても文字ごとに比較します。
データ形式がASCIIコード、シフトJISコード、Unicode UCS-2形式またはUnicode UTF-8形式で、入力コード系オプション(-q)がEBCDICコード系以外の場合に指定できます。
nとは排他関係にあります。

cmp

比較演算子を指定します。
以下に比較演算子とその意味を示します。

[比較演算子とその意味]

比較演算子

意味(真の条件)

eq

被比較フィールド = 比較フィールドまたは自己規定値

ne

被比較フィールド ≠ 比較フィールドまたは自己規定値

gt

被比較フィールド > 比較フィールドまたは自己規定値

ge

被比較フィールド ≧ 比較フィールドまたは自己規定値

lt

被比較フィールド < 比較フィールドまたは自己規定値

le

被比較フィールド ≦ 比較フィールドまたは自己規定値

sel-def 記述上の注意事項

■記述例

例1) 12バイトめの位置から4バイトの固定小数点2進数のフィールドが30以上のレコードを選択する場合は、次のように指定します。

-p 11.4fbi.ge.d30

例2) 10バイトめの位置から5バイトのASCIIコードのフィールドに文字列abcdeがあるレコードを選択する場合は、次のように指定します。

-p "9.5asc.eq.'abcde'"

例3) 10バイトめの位置から5バイトのASCIIコードのフィールドに文字列"abcdがあるレコードを選択する場合は、次のように指定します。

-p "9.5asc.eq.'\"abcd'"

例4) 10バイトめの位置から5バイトのASCIIコードのフィールドに文字列abc'dがあるレコードを選択する場合は、次のように指定します。

-p "9.5asc.eq.'abc''d'"

例5) 4バイトめの位置から3バイトのASCIIコードのフィールドに文字列abcがある、かつ10バイトめの位置から3バイトのASCIIコードのフィールドに文字列abcがあるレコード、または4バイトめの位置から5バイトのASCIIコードのフィールドに文字列abcdeがあるレコードを選択する場合は、次のように指定します。

-p "3.3asc.eq.'abc'","9.3asc.eq.'abc'" -p "3.5asc.eq.'abcde'"


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

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