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=パラメータで指定した参照ファイルの項目値を比較し、 |
|
同じ値を持たない入力ファイルの行を選択する。 |
入力ファイルにある「顧客」項目と、参照ファイルにある「顧客」項目が同じ値を持つ入力ファイルの行を選択する。 それ以外のデータは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
-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
結合キーの項目名が異なる場合は、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
参照ファイルと入力ファイルのキー項目に重複行があっても選択可能。
$ 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 : 選択だけでなく、項目を結合したい場合はこのコマンド。