ページのトップに戻る
PowerSORT V6.0  ユーザーズガイド

4.2.2 再編成フィールドオプション(-e)

レコード再編成機能を使用する場合に再編成フィールドを指定します。
再編成フィールドに指定したフィールドは、出力レコードの先頭から順に詰めて出力します。レコード再編成機能を使用する場合、キーフィールドと集約フィールドにはレコード再編成後のフィールド位置を指定します。

記述形式

-e recon-def [ ,recon-def ...]

recon-def の記述形式

recon-def の記述形式には、以下の4つの形式があります。

pos

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

len

再編成フィールドの長さをバイト数で指定します。
テキストファイル浮動フィールド指定、テキストファイルCSV形式、およびテキストファイルTSV形式の場合、指定したフィールド長よりも長いフィールドが現れた場合は、指定したフィールド長で処理します。指定したフィールド長よりも短いフィールドが現れた場合は、実際のフィールド長で処理します。
recon-def の記述形式1では、長さの制限はありません。recon-def の記述形式2で指定可能な各データ形式の長さについては、2.6.4.4 再編成フィールドの自己規定値に指定可能なデータ形式を参照してください。

注意

テキストファイルCSV形式、およびテキストファイルTSV形式の場合、フィールドを囲むダブルクォーテーション( " )は、再編成フィールドの長さに含みません。また、ダブルクォーテーション( " )で囲まれたフィールド内の2つ連続したダブルクォーテーション( "" )は、1つのダブルクォーテーション( " )として長さを計算します。

例) テキストファイルCSV形式における、再編成フィールドと長さ
再編成フィールド        再編成フィールドとして有効な文字        再編成フィールドの長さ
ABC                     ABC                                     3バイト
"ABC"                   ABC                                     3バイト
"A""B""C"               A"B"C                                   5バイト
"A,B,C"                 A,B,C                                   5バイト

self

自己規定値を指定します。
self の記述形式を以下に示します。

注意

  • オプション引数で自己規定値の文字列を指定する場合は、オプション引数全体をダブルクォーテーション( " )で囲みます。

  • オプション引数でダブルクォーテーション( " )を含んだ自己規定値の文字列を指定する場合は、ダブルクォーテーション( " )の前に円記号( ¥ )を指定します。

  • オプション引数でクォーテーション( ' )を含んだ自己規定値の文字列を指定する場合は、クォーテーション( ' )を2つ続けて指定します。

  • 自己規定値の10進数を指定する場合は、符号を指定できます。

  • テキストファイル固定フィールド指定の場合は、自己規定値にレコード分離文字を含むことはできません。

  • テキストファイル浮動フィールド指定の場合は、自己規定値にフィールド分離文字列、またはレコード分離文字を含むことはできません。

  • テキストファイルCSV形式、およびテキストファイルTSV形式の場合、自己規定値にフィールド分離文字、レコード分離文字(注)、またはダブルクォーテーション( " )が含まれているときは、自己規定値をダブルクォーテーション( " )で囲んで出力します。この際、自己規定値のダブルクォーテーション( " )は、2つ連続して出力します。

    注) 入力ファイルのレコード分離文字だけでなく、レコード分離文字として許されているCRLF、CR、およびLFのどれか1つでも含まれている場合、自己規定値をダブルクォーテーション( " )で囲みます。
    例) 自己規定値にフィールド分離文字(コンマ)、またはダブルクォーテーション( " )を含む場合の再編成フィールドに出力されるデータ
    自己規定値の指定        再編成フィールドに出力されるデータ
    FIELD"2"                "FIELD""2"""
    FIELD2,3                "FIELD2,3"
    FIELD"2",3              "FIELD""2"",3"
  • 自己規定値で指定した値とlen で指定した長さが異なるときは、以下に示すように処理します。

    • 自己規定値が文字列の場合

      • 自己規定値で指定した文字列の長さがlen で指定した長さより短い場合は、自己規定値を左詰めにして右余白に空白を詰めます。

      • 自己規定値で指定した文字列の長さがlen で指定した長さより長い場合は、エラーとなります。

    • 自己規定値が数字、または数値の場合

      • 自己規定値で指定した値をtyplen で指定したデータ形式と長さに変換して埋め込みます。

      • 変換結果がlen を超える場合は、エラーとなります。

  • 固定小数点2進数、符号なし固定小数点2進数、8086形式固定小数点2進数、8086形式符号なし固定小数点2進数、システム依存形式固定小数点2進数、システム依存形式符号なしの自己規定値を10進数で指定する場合、その値は以下の範囲になります。

    長さ

    符号ありのデータ形式

    符号なしのデータ形式

    1バイト

    -128~127

    0~255

    2バイト

    -32768~32767

    0~65535

    3バイト

    -8388608~8388607

    0~16777215

    4バイト以上

    -2147483648~2147483647

    0~4294967295

typ

自己規定値のデータ形式を指定します。
指定可能なデータ形式については、2.6.4.4 再編成フィールドの自己規定値に指定可能なデータ形式を参照してください。

注意

  • ASCIIコードは、バイナリファイルの場合、入力コード系オプション(-q)がEBCDICコード系以外の場合に指定できます。テキストファイルの場合、入力コード系オプション(-q)がASCIIコード系の場合に指定できます。

  • EBCDICコードは、入力コード系オプション(-q)がEBCDICコード系の場合に指定できます。

  • シフトJISコードは、入力コード系オプション(-q)がASCIIコード系の場合に指定できます。

  • Unicode UCS-2形式は、バイナリファイルの場合、入力コード系オプション(-q)がEBCDICコード系以外の場合に指定できます。テキストファイルの場合、入力コード系オプション(-q)がUnicode系(UCS-2形式)の場合に指定できます。

  • Unicode UTF-8形式は、バイナリファイルの場合、入力コード系オプション(-q)がEBCDICコード系以外の場合に指定できます。テキストファイルの場合、入力コード系オプション(-q)がUnicode系(UTF-8形式)の場合に指定できます。

END

recon-def の記述形式3の場合に、'END'の固定文字列を指定します。

EMPTY

recon-def の記述形式4の場合に、'EMPTY'の固定文字列を指定します。

opt

再編成フィールドの操作を指定します。
テキストファイルCSV形式、またはテキストファイルTSV形式の場合の、recon-def の記述形式2、またはrecon-def の記述形式4のときに指定できます。以下から選択して指定します。省略した場合は、Lを指定したものとして動作します。

opt

意味

A

再編成フィールドをダブルクォーテーション( " )で囲みます。

L

再編成フィールドをダブルクォーテーション( " )で囲みません。
ただし、再編成フィールドに、フィールド分離文字、レコード分離文字(注)、またはダブルクォーテーション( " )が含まれている場合は、ダブルクォーテーション( " )で囲みます。

注) 入力ファイルのレコード分離文字だけでなく、レコード分離文字として許されているCRLF、CR、およびLFのどれか1つでも含まれている場合、自己規定値をダブルクォーテーション( " )で囲みます。

参考

  • テキストファイルCSV形式、またはテキストファイルTSV形式の場合の、recon-def の記述形式1、またはrecon-def の記述形式3のときに、再編成フィールドをダブルクォーテーション( " )で囲むかどうかは、入力レコードのフィールドに従います。入力レコードのフィールドがダブルクォーテーション( " )で囲まれているときは、レコード再編成後のフィールドもダブルクォーテーション( " )で囲みます。

    例) 再編成フィールドを「-e 1.3,2.2」と指定した場合
    入力レコード                 出力レコード
    "001","ABC",60               "ABC",60
    "002","ABCDE",50             "ABC",50
    "003","AB,CDE",40            "AB,",40
    "004","AB"CDE,30 (注)        "AB"C,30
           注) 2番目のフィールドは、「AB」がダブルクォーテーションで囲まれ、「CDE」がそのあとに続いていると判断します。

記述例

例1) 入力レコードの5バイト目から長さ10バイトのフィールドを再編成する場合は、次のように指定します。

-e 4.10

例2) 自己規定値としてASCIIコードの「abc」を文字列で指定する場合は、以下のように指定します。

-e "'abc'.3asc"

例3) 自己規定値としてASCIIコードの「abc」を16進数で指定する場合は、以下のように指定します。

-e x616263.3asc

例4) 自己規定値として外部10進数の「-32」を長さ4バイトで指定する場合は、以下のように指定します。

-e d-32.4zdl

例5) 入力レコードの5バイト目からレコードの最後までを再編成する場合は、以下のように指定します。

-e 4.END

例6) テキストファイルCSV形式、またはテキストファイルTSV形式の場合、自己規定値としてASCIIコードの「abc」を文字列で指定し、このフィールドをダブルクォーテーション( " )で囲むときは、以下のように指定します。

-e "'abc'.3ascA"

例7) テキストファイルCSV形式、またはテキストファイルTSV形式の場合、入力レコードの1番目のフィールドと2番目のフィールドの間にダブルクォーテーション( " )で囲まれた空フィールドを追加するときは、以下のように指定します。

-e 0.1,EMPTYA,1.END