Dfd - フィールド記述
[ 英語 | 日本語 ]
[Dホームページへ]
Dfd [ -e ] [ -g key-field-list ] [ -k key-flags ] [ input-file.. ]
Dfd
は、入力ファイルからDレコードを読んで
フィールド記述レコードの組を作成する。
フィールド記述レコードは、入力ファイルの
フィールド名と種々の属性とを記述したものである。
ふつうの使い方では、Dfd
の出力は
Dpr
にパイプで渡して表示する。
他の指定のない限り、
Dfdは
各入力ファイルの終わりごとに
フィールド記述レコードの組を出力する。
入力ファイルの全フィールドがフィールド記述レコードに現れる。
オプション
-g
が指定されると、
Dfd
は同一キー値のレコードのグループごとに
フィールド記述レコードの組を作成する。
グループ化キーフィールド自体に対しては、
フィールド記述レコードは作成されない。
グループ内に出現するフィールドのみが
フィールド記述レコードに現れる。
Dfdの出力するフィールド記述レコードの組における
フィールド記述レコードの順番は、入力Dレコードにおける
フィールド順に依存して決まる。
すべての入力レコードが同じフィールド順
("a", "b", "c")であれば、
出力レコードもその順
(最初のレコードがフィールド"a"の記述レコード、
2番目がフィールド"b"の、3番目がフィールド"c"の)となる。
入力レコードのフィールド順が変化している場合、
Dfd
はできるだけ自然な順番を見つけようとする。
- -e
- 拡張属性;
非ASCII文字の文字クラスを示すNAscフィールドを出力する。
- -g key-field-list
- グループ処理;
フィールド記述レコードは同じキー値を持つレコードグループごとに出力される。
- -k key-flags
- key-field-listの省略時キーフラグ。 マニュアル
Dintro参照。
- -D [i/o]datautf=8|16|32
-
UTF入出力機能参照。
各出力レコードは、次のフィールドをこの順に持つ。
- filename:
- 入力ファイル名。シェルによって展開された形。
このフィールドは、入力ファイルが標準入力の場合出力されない。
- グループ化キーフィールド
- オプション
-g
が指定されたとき。
key-field-list
として指定されたフィールドの値が入る。
ただし、値はキーフラグによってもとのままのものとは
違う場合もある。
- fieldname:
- そのフィールド名。
- min:
- そのフィールドの最少出現回数。
この値が0であれば、
1つ以上のレコードにこのフィールドがないことを示す。
- max:
- そのフィールドの最大出現回数。
この値が1より大きければ、
このフィールドはリピーティングであることを示す。
- exists:
- このフィールドの値は"/"で区切られた2つの数値からなる。
最初の部分は、そのフィールドを持っているDレコードの数、
2番目の部分は、入力Dレコード数である。
minの値が0でなければ、この2つの部分の数値は等しい。
- minlen:
- そのフィールドの最小長(文字数)。
- maxlen:
- そのフィールドの最大長(文字数)。
もし
minlen
と
maxlen
とが同じ値であれば、そのフィールドは固定長である。
- avglen:
- そのフィールドの平均長(文字数)。
- attribute:
- そのフィールドの数値/文字列属性を示す。
attributeフィールドは、そのフィールドに値がない
(maxlenが0)とき、出力されない。
内容は、次の節を参照。
- NAsc:
- そのフィールドの文字クラスを示す。
これは、-eオプションが指定され、
かつそのフィールドに非ASCII文字が現れたときのみ
出力される。文字クラスはオペレーティングシステム
に依存する。次の節を参照。
- position:
- そのフィールドの相対的位置についての情報。
値が"split"のとき、そのフィールドはリピーティング
になっていて、出現位置がDレコード内で離れた位置
(間に別のフィールドがある)に現れたことを示す。
そのフィールドはリピーティンググループの1部かもしれない。
positionフィールドは、値"split"のときのみ出力される。
Dfdは、当該フィールドのすべての値を調べて、
それらがすべて数値として解釈できる場合数値属性を、
そうでなければ文字列属性を報告する。
数値は前後に空白があってもよい。
詳細は
Dintro
を参照。
数値属性は、次のいずれかである。
- Int
- 符号なし10進整数。
- Int-
- 符号付き10進整数。
- Num
- 小数点を含む10進数、または.3141593e01のような浮動小数点表記。
- Hex
- 16進数。0x....の形式の数値表現。
文字列属性は次のいずれかの語のならび(+の入ることもある)
からなる。
- Asc
- ASCII文字を含む。
- NAsc
- 非ASCII文字を含む。
- Nprt
- 非印字文字を含む。
- ?
- 出力文字コードにない文字を含む。
出力にUTF入出力機能
を用いている場合は、この値は適用されない。
文字クラスを示す拡張属性はオペレーティングシステム
環境に依存する。
内部コードがUCSの場合
(Windows、LinuxおよびSolarisでロケールがUTF-8の場合)、
文字のブロック名が文字クラスとなる。
ブロック名ごとにNAscフィールドが一つづつ作られる。
NAscフィールドの例を示す。
NAsc:Hiragana
NAsc:CJK Unified Ideographs
SolarisでUTF-8以外のロケールを使用する場合、
NAscフィールドは作られない。
内部コードの構成がアプリケーションには
非公開となったためである。
- Ddatautf, Didatautf, Dodatautf
-
UTF入出力機能参照。
マニュアル
D_msg参照。
Dintro、
Drc、
D_msg。
AUTHOR
MIYAZAWA Akira
miyazawa@nii.ac.jp
2003