PowerSORT V5.0 使用手引書 |
目次
索引
![]() ![]() |
第5章 PowerSORTのbsortexコマンドを使用する | > 5.2 bsortexコマンドオプション | > 5.2.5 入力ファイル情報オプション(-input) |
入力ファイルのレコード選択機能を使用する場合に選択フィールド(選択条件)を指定します。
条件が成立したレコードを処理の対象とします。
includeオペランドは、omitオペランドとは排他関係にあります。
include=condition-expression |
選択フィールド(選択条件)を指定します。
コンマ( , )で区切って複数のcondition-expression を指定した場合は、選択条件の論理積となります。複数のincludeオペランドを指定した場合は、選択条件の論理和となります。
condition-definition [ { .and. | .or. } [ ( ]condition-expression [ ) ] ] |
選択条件の論理積を示します。コンマ( , )で区切って複数指定した場合と同等です。
選択条件の論理和を示します。includeオペランドを複数指定した場合と同等です。
一つの選択フィールド(選択条件)を指定します。
以下にcondition-definition の記述形式を示します。
pos.len typ [ opt ].cmp.pos.len typ |
記述形式1は2つの選択フィールドを比較します。cmp の左辺は被比較フィールドを、右辺は比較フィールドを示します。
pos.len typ [ opt ].cmp.self-def |
記述形式2は選択フィールドと自己規定値を比較します。cmp の左辺は被比較フィールドを、右辺は自己規定値を示します。
RECNUM.cmp.num |
記述形式3はレコード件数に従って選択します。
被比較フィールドまたは比較フィールドの位置を指定します。
バイナリファイルとテキストファイル固定フィールド指定の場合は、レコードの先頭を0としたバイト位置を指定し、テキストファイル浮動フィールド指定の場合は、0から数えたフィールド番号を指定します。
被比較フィールドまたは比較フィールドの長さをバイト数で指定します。
詳細は被比較フィールドと比較フィールドに指定可能なデータ形式を参照してください。
テキストファイル浮動フィールド指定の場合、指定したフィールド長よりも長いフィールドが現れた場合は、指定したフィールド長で処理します。指定したフィールド長よりも短いフィールドが現れた場合は、実際のフィールド長で処理します。
データ形式に符号なし2進数を指定する場合は、マスク値を指定します。フィールド値とマスク値の論理積を比較します。マスク値は、被比較フィールドと比較フィールドに同じ値を指定します。
被比較フィールドと比較フィールドのデータ形式を指定します。
詳細は被比較フィールドと比較フィールドに指定可能なデータ形式を参照してください。
被比較フィールドの操作を指定します。
複数の操作を指定する場合は続けて記述します。b、d、i、jおよびnは、テキストファイルを処理する場合に指定できます。指定可能な操作と意味を以下に示します。
opt |
意味 |
---|---|
b |
キーフィールドの先頭の空白とタブを無視します。 |
d |
空白と英数字だけを比較の対象とします。 |
i |
制御文字コードを無視します。 |
j |
英小文字を英大文字として比較します。 |
l |
環境変数LC_COLLATEで定義した照合順序で比較します。 |
n |
符号を含んだ数字の文字列を算術的な値で比較します。 |
自己規定値を指定します。self-def の記述形式を以下に示します。
'文字列 ' |
x16進数 |
d10進数 |
比較演算子を指定します。
被比較フィールドがEUCファイルコード、EUC2バイトプロセスコードおよびEUC4バイトプロセスコードの場合は、環境変数LC_COLLATEに従った照合順序で比較します。
以下に比較演算子とその意味を示します。
比較演算子 |
意味(真の条件) |
---|---|
eq |
被比較フィールド = 比較フィールドまたは自己規定値 |
ne |
被比較フィールド ≠ 比較フィールドまたは自己規定値 |
gt |
被比較フィールド > 比較フィールドまたは自己規定値 |
ge |
被比較フィールド ≧ 比較フィールドまたは自己規定値 |
lt |
被比較フィールド < 比較フィールドまたは自己規定値 |
le |
被比較フィールド ≦ 比較フィールドまたは自己規定値 |
レコード件数で選択することを指定します。
レコード件数を指定します。
入力の場合、入力ファイルの先頭レコードを1件めとして指定します。複数の入力ファイルを指定した場合、ファイルごとの先頭レコードを1件めとして選択します。出力の場合、集約またはサプレス後に出力する最初のレコードを1件めとして指定します。
condition-definition 記述上の注意事項
include="0.3asc.eq.'ABC'" |
include="0.5asc.eq.'\"ABC\"'" |
include="0.5asc.eq.'''ABC'''" |
include=0.3asc.eq.\'ABC\' |
include=0.5asc.eq.\'\"ABC\"\' |
include=0.5asc.eq.\'\'\'ABC\'\'\' |
データ形式 |
指定可能な値 |
---|---|
符号ありのデータ形式 |
-2147483648 〜 2147483647 |
符号なしのデータ形式 |
0 〜 4294967295 |
例1) 12バイトめの位置から4バイトの外部10進数のフィールドと32バイトめの位置から4バイトの内部10進数のフィールドが等しいレコードを処理の対象とする場合は、次のように指定します。
include=11.4zdl.eq.31.4pdl |
例2) 12バイトめの位置から4バイトの固定小数点2進数のフィールドが30以上のレコードを処理の対象とする場合は、次のように指定します。
include=11.4fbi.ge.d30 |
例3) ファイルの先頭から50件めまでのレコードを処理の対象とする場合は、次のように指定します。
include=RECNUM.le.50 |
例4) 自己規定値の文字列を指定する場合は、次のように指定します。
include="10.5asc.eq.'abcde'" |
include=10.5asc.eq.\'abcde\' |
例5) ダブルクォーテーション( " )を含んだ自己規定値の文字列を指定する場合は、次のように指定します。
include="10.5asc.eq.'ab\"cd'" |
include=10.5asc.eq.\'ab\"cd\' |
例6) クォーテーション( ' )を含んだ自己規定値の文字列を指定する場合は、次のように指定します。
include="10.5asc.eq.'abc''d'" |
include=10.5asc.eq.\'abc\'\'d\' |
例7) 自己規定値で10進数の指定をする場合は、次のように指定します。
include=10.4zdl.eq.d-1000 |
目次
索引
![]() ![]() |