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:
そのフィールドの最大長(文字数)。 もし minlenmaxlen とが同じ値であれば,そのフィールドは固定長である。
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入出力機能 を用いている場合は,この値は適用されない。

拡張属性:NAscフィールド

文字クラスを示す拡張属性はオペレーティングシステム 環境に依存する。

内部コードがUCSの場合 (Windows,LinuxおよびSolarisでロケールがUTF-8の場合), 文字のブロック名が文字クラスとなる。 ブロック名ごとにNAscフィールドが一つづつ作られる。 NAscフィールドの例を示す。

NAsc:Hiragana
NAsc:CJK Unified Ideographs

SolarisでUTF-8以外のロケールを使用する場合, NAscフィールドは作られない。 内部コードの構成がアプリケーションには 非公開となったためである。

環境変数

Ddatautf, Didatautf, Dodatautf
UTF入出力機能参照。

メッセージ

マニュアル D_msg参照。

参照

DintroDrcD_msg

AUTHOR

MIYAZAWA Akira


miyazawa@nii.ac.jp
2003