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

[ 英語 | 日本語 ]

[Dホームページへ]

形式

Dselect [ options ] Dl-expression [ input-file.. ]
Dselect [ options ] [ -f Dl-expression-file ].. [ input-file.. ]

説明

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

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

オプション

-f Dl-expression-file
Dl-expressionをコjマンド引数からでなく, Dl-expression-fileから読み込む。 このオプションは繰り返し可で, その場合,全ファイルを連結して式を読み込む。。
-F
"filename"フィールドを出力各レコードに付加する。 値は,シェルから渡された入力ファイル名である。 入力ファイルが標準入力の場合このフィールドは付加されない。
-D [i/o]datautf=8|16|32
UTF入出力機能参照。

既定フィールド名

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

環境変数

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

使用例

フィールド"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参照。

参照

DintroDextractDgrepDheadDtailDlDedD_msg

AUTHOR

MIYAZAWA Akira


miyazawa@nii.ac.jp
2003-2007