Previous: msel 条件式による行選択 Up: コマンドリファレンス Next: mselrand ランダムに行を選択 MCMD2
MCMD2 : コマンドリファレンス : mselnum 数値範囲による行選択

3.48 mselnum 数値範囲による行選択

f=で指定した項目の値が、 c=で指定した数値範囲にマッチする行を選択する。 以下に示すように多様な選択条件を指定することが可能である。 このコマンドで指定できないより複雑な条件(文字列マッチとの組み合せなど) を設定するのであればmselコマンドを利用すればよい。 OR条件、AND条件およびキー指定についての詳細はmselnumコマンドを参照されたい。

  • 開区間、閉区間、半開区間、無限区間の制定が可能である。

  • c=に複数の範囲を指定すれば、いずれかの範囲にマッチすれば選択される(OR条件)。

  • f=に複数項目を指定すれば、いずれかの項目の値がマッチすれば選択される(OR条件)。

  • f=のOR条件をAND条件に変更することも可能(-Fオプション)。

  • k=を指定することでキー単位で選択することが可能。

  • キー単位選択の場合、複数レコードのAND条件を指定可能(-Rオプション)。

典型的な例をTable 3.16〜3.18に示す。

Table 3.16: 入力データ

key

val

a

1

a

-3

b

3

b

6

Table 3.17: val項目が1以上3以下の行を選択
mselnum f=val c='[1,3]'

key

val

a

1

b

3

: Caption text
val項目が1以上3未満の行を選択 mselnum f=val c='[1,3)'

key

val

a

1

Table 3.18: 5以上の行を選択
mselnum f=val c='[5,)'

key

val

b

6

: Caption text
1以下もしくは5以上の行を選択 mselnum f=val c='(,1],[5,)'

key

val

a

1

a

-3

b

6

書式

mselnum f= c= [k=] [u=] [-F] [-r] [-R] [i=] [o=] [bufcount=] [-assert_diffSize] [-assert_nullkey] [-assert_nullin] [-nfn] [-nfno] [-x] [-q] [tmpPath=] [--help] [--helpl] [--version]

パラメータ

f=

検索対象となる項目名リスト(複数項目指定可)を指定する。

c=

f=パラメータで指定した項目の値が、ここで指定した文字列リスト(複数範囲指定可)の1つにマッチすれば選択される。

k=

撰択する単位となるキー項目(複数項目指定可)を指定する。

o=

指定の条件に一致する行を出力するファイル名を指定する。

u=

指定の条件に一致しない行を出力するファイル名を指定する。

-F

f=パラメータで複数項目を指定した場合、その全ての値がマッチする行を撰択する。

-r

条件反転

 

選択ではなく削除する。

-R

k=パラメータを指定した場合、その全ての行がマッチすれば行を撰択する。

利用例

例1: 基本例

val項目が2以上5以下の行、すなわちid=2,5の行を選択する。

$ more dat1.csv
id,val
1,5.1
2,5
3,-2.0
4,
5,2.0
$ mselnum f=val c='[2,5]' i=dat1.csv o=rsl1.csv
#END# kgselnum c=[2,5] f=val i=dat1.csv o=rsl1.csv
$ more rsl1.csv
id,val
2,5
5,2.0

例2: 片側範囲

val項目が2以上の行、すなわちid=1,2,5の行を選択する。

$ mselnum f=val c='[2,]' i=dat1.csv o=rsl2.csv
#END# kgselnum c=[2,] f=val i=dat1.csv o=rsl2.csv
$ more rsl2.csv
id,val
1,5.1
2,5
5,2.0

関連コマンド

msel : 複雑な条件指定による選択を行う場合に利用する。

mselstr : 文字列マッチによる選択。

Previous: msel 条件式による行選択 Up: コマンドリファレンス Next: mselrand ランダムに行を選択 MCMD2