[ 英語 | 日本語 ]
Dfreq [ -F ] [ -g group-by-key-field-list ] [ -k key-flags ] [ -mp ] key-field-list [ input-file.. ]
Dfq は Dfreqの短縮形(UNIXのみ)。
Dfreq は、key-field-listで指定されたフィールドの 値の頻度レコードを出力する。 出力レコードは、key-field-list に指定されたフィールドと、 規定フィールド名"count"フィールドを持っている。 このキーフィールドの値は、出力中一意で、 "count"フィールドは、その値を持ったDレコード数を示す。 出力レコード順は、key-field-listで指定される キー値の順となる。 これは、Dsort での順と等しい。
出力レコード中のキーフィールドの値は、 キーフラグによって次のように変更される。 fフラグは、アルファベット小文字を大文字にする。 nフラグは、値を正規化された数値形式にする。 dフラグは区切り字を除去する。 iフラグは非印字文字を除去する。 出力レコード中のキーフィールドの順は、 key-field-listに従い、 入力レコード中の順は保存しない。
オプション-pを指定すると、 出力レコードには"percent"フィールドが付加される。
通常では、欠値(この場合、キーフィールドが一つもないとき) は、入力レコードにカウントしない。 しかし、オプション-mを指定すると、欠値の場合も 入力レコードにカウントされる。 欠値に対する出力レコードでは、キーフィールドは存在せず、 "count"フィールド(および指定があれば"percent"フィールド)のみ存在する。
2つい上の入力ファイルがある場合、 Dfreq はそれらを連続した一つのファイルのように扱う。 しかし、オプション-Fが指定されると、 <Dfreqは、頻度レコードを、 各入力ファイルの終わりごとに出力する。 この場合、各出力レコードに"filename"フィールドを付加する。
オプション -g group-by-key-field-list が指定されると、 Dfreq は、このキーフィールドの値が変わる (グループ化キーフィールドの値が直前のレコードと異なる) ごと、または各入力ファイルの終わりごとに頻度レコードを出力する。 通常このオプションは、group-by-key-field-listでファイルを Dsortした後で使うが、 必須というわけではない。 グループ処理の場合、"percent"フィールド(もしあれば) は、同一キー値のグループ内のレコード数に基づいて計算される。
次の2つのコマンド
Dfreq -g a b
Dfreq a,b
は、実際上"percent"フィールドをのぞいて同じ結果を出力する。 (前者は各グループごとに100%であるが、後者は入力全体が100%)。 この2つの実際的な違いは、メモリー使用量である。 前者の方が少ないメモリーで実行できる。 なぜなら、 Dfreq は、頻度レコードを出力するまでの間すべてのキー値をメモリー上に 保持しているからである。 グループ処理の場合、 Dfreq は、グループ化キー値が替わるごとに頻度レコードを出力する。 これに対し通常の処理では、すべての入力ファイルを読んだ後に 頻度レコードを出力する。 したがって、グループ処理のオプションは非常に大きな入力ファイル を処理する場合や、キーフィールドが非常に多種の値を含んでいるような場合 有効である。
各出力レコードは、次のフィールドをこの順に持つ。
マニュアル D_msg参照。
MIYAZAWA Akira