Previous: mcombi 組合せ計算 Up: コマンドリファレンス Next: mcount 行数カウント MCMD2
MCMD2 : コマンドリファレンス : mcommon 参照ファイルによる行選択

3.12 mcommon 参照ファイルによる行選択

k=パラメータで指定した入力ファイルの項目値とm=パラメータで指定した参照ファイルの項目値を比較し、同じ値を持つ入力ファイルの行を選択する。

書式

mcommon k= [K=] [u=] [-r] m=| i= [o=] [-assert_diffSize] [-assert_nullkey] [-nfn] [-nfno] [-x] [-q] [tmpPath=] [--help] [--helpl] [--version]

パラメータ

k=

入力データ上の突き合わせる項目名リスト(複数項目指定可)

 

ここで指定した入力データの項目とK=パラメータで指定された参照データの項目が同じ行が選択される。

 

同じ値が複数行連続していてもよい。

m=

参照ファイル名を指定する。

 

またこのパラメータが省略された時には標準入力が用いられる。(i=指定ありの場合)

K=

参照データ上の突き合わせる項目名リスト(複数項目指定可)

 

ここで指定した参照データの項目とk=パラメータで指定された入力データの項目が同じ行が選択される。

 

参照データ上にk=パラメータで指定した入力データ上の項目と同名の項目が存在する場合は指定する必要はない。

 

同じ値が複数行連続していてもよい。

u=

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

-r

条件反転

 

k=パラメータで指定した入力ファイルの項目値と

 

m=パラメータで指定した参照ファイルの項目値を比較し、

 

同じ値を持たない入力ファイルの行を選択する。

利用例

例1: 基本例

入力ファイルにある「顧客」項目と、参照ファイルにある「顧客」項目が同じ値を持つ入力ファイルの行を選択する。 それ以外のデータはoth.csvに出力する。

$ more dat1.csv
顧客,数量
A,1
B,2
C,1
D,3
E,1
$ more ref1.csv
顧客,性別
A,女性
B,男性
E,女性
$ mcommon k=顧客 m=ref1.csv u=oth.csv i=dat1.csv o=rsl1.csv
#END# kgcommon i=dat1.csv k=顧客 m=ref1.csv o=rsl1.csv u=oth.csv
$ more rsl1.csv
顧客%0,数量
A,1
B,2
E,1
$ more oth.csv
顧客%0,数量
C,1
D,3

例2: 同じ値を持たない入力ファイルの行選択

-rオプションを付けることで、条件が逆転し、参照ファイルにない「顧客」を選択することになる。

$ mcommon k=顧客 m=ref1.csv -r i=dat1.csv o=rsl2.csv
#END# kgcommon -r i=dat1.csv k=顧客 m=ref1.csv o=rsl2.csv
$ more rsl2.csv
顧客%0,数量
C,1
D,3

例3: 結合キー項目名が異なる場合

結合キーの項目名が異なる場合は、K=で指定する。

$ more ref2.csv
顧客ID,性別
A,女性
B,男性
E,女性
$ mcommon k=顧客 K=顧客ID i=dat1.csv m=ref2.csv o=rsl3.csv
#END# kgcommon K=顧客ID i=dat1.csv k=顧客 m=ref2.csv o=rsl3.csv
$ more rsl3.csv
顧客%0,数量
A,1
B,2
E,1

例4: キー項目に重複行がある場合の例

参照ファイルと入力ファイルのキー項目に重複行があっても選択可能。

$ more dat3.csv
顧客,数量
A,1
A,2
A,3
B,1
D,1
D,2
$ more ref3.csv
顧客
A
A
D
$ mcommon k=顧客 m=ref3.csv -r i=dat3.csv o=rsl4.csv
#END# kgcommon -r i=dat3.csv k=顧客 m=ref3.csv o=rsl4.csv
$ more rsl4.csv
顧客%0,数量
B,1

関連コマンド

mselstr : 参照ファイルの結合キーの種類数が少なければこのコマンドでも対応できる。

mnrcommon : 参照ファイルの結合キーがユニークでなければこちらを使う。

mjoin : 選択だけでなく、項目を結合したい場合はこのコマンド。

Previous: mcombi 組合せ計算 Up: コマンドリファレンス Next: mcount 行数カウント MCMD2