Previous: msortf レコードの並べ換え Up: コマンドリファレンス Next: mstats 一変数の統計量算出 MCMD2
MCMD2 : コマンドリファレンス : msplit 区切り文字による項目分割

3.59 msplit 区切り文字による項目分割

区切り文字によって項目を分割する。

書式

msplit f= a= [-r] [delim=] [i=] [o=] [-nfn] [-nfno] [-x] [-q] [tmpPath=] [--help] [--helpl] [--version]

パラメータ

f=

区切り文字で分割するデータの項目名を指定する

a=

新項目を指定する

 

ここで指定した項目名分分割される。足りない分はNULLとなる

delim=

新しい区切り文字を指定する。デフォルト値は半角スペース。

-r

f=で指定した項目を取り除く

利用例

例1: 基本例

半角スペースで分割

$ more dat1.csv
id,data
A,1 10 2
A,2 20 3
B,1 15 5
B,3 10 4
B,1 20 6
$ msplit f=data a=d1,d2,d3 i=dat1.csv o=rsl1.csv
#END# kgsplit a=d1,d2,d3 f=data i=dat1.csv o=rsl1.csv
$ more rsl1.csv
id,data,d1,d2,d3
A,1 10 2,1,10,2
A,2 20 3,2,20,3
B,1 15 5,1,15,5
B,3 10 4,3,10,4
B,1 20 6,1,20,6

例2: -r利用

-rを指定することで、f=で項目を削除できる。

$ msplit f=data a=d1,d2,d3 -r i=dat1.csv o=rsl2.csv
#END# kgsplit -r a=d1,d2,d3 f=data i=dat1.csv o=rsl2.csv
$ more rsl2.csv
id,d1,d2,d3
A,1,10,2
A,2,20,3
B,1,15,5
B,3,10,4
B,1,20,6

例3: 分割数不一致

a=で指定した項目数よりも分割できる項目数が少ない場合は、NULLが追加され、 多い場合、先頭から指定した分割数まで出力する

$ more dat2.csv
id,data
A,1 10 2
A,2 20 3
B,1 15 5
B,3 4
B,1
$ msplit f=data a=d1,d2 i=dat2.csv o=rsl3.csv
#END# kgsplit a=d1,d2 f=data i=dat2.csv o=rsl3.csv
$ more rsl3.csv
id,data,d1,d2
A,1 10 2,1,10
A,2 20 3,2,20
B,1 15 5,1,15
B,3 4,3,4
B,1,1,

例4: delim指定

delim=を使用して半角スペース以外の文字で分割する

$ more dat3.csv
id,data
A,1_10_3
A,2_20_5
B,1_15_6
B,3_10_7
B,1_20_8
$ msplit f=data a=d1,d2,d3 delim=_ i=dat3.csv o=rsl4.csv
#END# kgsplit a=d1,d2,d3 delim=_ f=data i=dat3.csv o=rsl4.csv
$ more rsl4.csv
id,data,d1,d2,d3
A,1_10_3,1,10,3
A,2_20_5,2,20,5
B,1_15_6,1,15,6
B,3_10_7,3,10,7
B,1_20_8,1,20,8

関連コマンド

Previous: msortf レコードの並べ換え Up: コマンドリファレンス Next: mstats 一変数の統計量算出 MCMD2