Dselect - 条件式を指定して検索

形式

Dselect [ -F ] Dl-expression [input-file..]

DselDselectの短縮形(UNIXのみ)。

説明

Dselectinput-file からレコードを読み、 Dl-expression, を評価して結果がTRUEであれば そのレコードを標準出力に出力する。

Dl-expressionについては、 マニュアル Dlを参照。 ただし、Dselectにおける Dl-expressionには、 入力したレコードに対する修正や、レコードの強制出力 が使えないという制限がある。

オプション

-F
"filename"フィールドを出力各レコードに付加する。 値は、シェルから渡された入力ファイル名である。 入力ファイルが標準入力の場合このフィールドは付加されない。

既定フィールド名

filename:
オプション -F が指定されたとき、各レコードの先頭。

使用例

フィールド"count"の値が1より大きい。

Dselect count:n ">" 1
Dselect NUM FIELD count GT 1

(上記2例は同じ結果となる。「:n」またはNUMが必要なことに注意。)

フィールド"keywd"の値が"database"または"DB"という文字列を含む。

Dselect keywd =~ database OR keywd =~ DB

同じ条件を次のように書くことができる。

Dselect keywd =~ "{" database DB "}"

フィールド"keywd"のすべての値が、 大文字ではじまり、小文字が続くアルファベットだけでできている語。

Dselect NOT keywd UNLIKE "^[A-Z][a-z]+$"

UNLIKEは最低一つマッチしない値があるかをテストする)

フィールド"mark"(繰り返しはないと仮定する)が値"*"をもつ。

Dselect mark == CONST "*"

(CONSTが必要である。理由:'*'は予約語のため。)

フィールド"mark"(繰り返しはないと仮定する)の値が"+"または"*"。

Dselect "{" "+" "*" "}" INCL FIELD mark

(キーワードFIELDが必須である。FIELDがないとmarkが定数になってしまう。)

100レコードごとに1レコードづつの抽出。

Dselect REC# % 100 == 1

大小文字を同一視する条件。

Dselect TOUPPER keywd =~ TOKYO

メッセージ

マニュアル D_msg参照。

参照

DintroDextractDgrepDheadDtailDlD_msg

AUTHOR

MIYAZAWA Akira


miyazawa@nii.ac.jp
2003