Dfd - フィールド記述
Dfd
[
-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
はできるだけ自然な順番を見つけようとする。
- -g key-field-list
- グループ処理;
フィールド記述レコードは同じキー値を持つレコードグループごとに出力される。
- -k key-flags
- key-field-listの省略時キーフラグ。 マニュアル
Dintro参照。
各出力レコードは、次のフィールドをこの順に持つ。
- 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)とき、出力されない。
内容は、次の節を参照。
- position:
- そのフィールドの相対的位置についての情報。
値が"split"のとき、そのフィールドはリピーティング
になっていて、出現位置がDレコード内で離れた位置
(間に別のフィールドがある)に現れたことを示す。
そのフィールドはリピーティンググループの1部かもしれない。
positionフィールドは、値"split"のときのみ出力される。
Dfdは、当該フィールドのすべての値を調べて、
それらがすべて数値として解釈できる場合数値属性を、
そうでなければ文字列属性を報告する。
数値属性は、次のいずれかである。
- Int
- 非負10進整数。
- Int-
- 負を含む10進整数。
- Num
- 小数点を含む10進数、または.3141593e01のような浮動小数点表記。
- Hex
- 16進数。
これは、0-9、A-Fおよびa-fだけからなる文字列である。
"Ace"や"Fee"といった文字列も16進数として解釈される。
- Hex/Num
- 16進数または数値。
たとえば、値"4E01"は16進数でも浮動小数点表記4.0でもありうる。
UNIXのEUCコード環境では、
文字列属性は次のいずれかの語のならび(+の入ることもある)
からなる。
- csN
- コードセットNの文字がある。
コードセット0はASCIIである。その他のコードセットはロケールに
よって決まっている。
- Nprt.
- 非印字文字を含む。
Windows環境では、
文字列属性は次のいずれかの語のならび(+の入ることもある)
からなる。
- Asc
- ASCII文字を含む。
- NAsc
- 非ASCII文字を含む。
- Nprt.
- 非印字文字を含む。
マニュアル
D_msg参照。
Dintro、
Drc、
D_msg。
AUTHOR
MIYAZAWA Akira
miyazawa@nii.ac.jp
2003