Previous: mnullto NULL値の置換 Up: コマンドリファレンス Next: mpadding (行補完) コマンド MCMD2
MCMD2 : コマンドリファレンス : mnumber 連番

3.40 mnumber 連番

数字連番もしくはアルファベット連番(A,B,...,Z,AA,AB,...,AZ,BA,BB,...,ZZ,AAA,AAB,...)ををふり、a=パラメータで指定した項目名で出力する。

書式

mnumber a= [e=] [I=] [k=] [s=] [S=] [-B] [i=] [o=] [-assert_diffSize] [-assert_nullkey] [-nfn] [-nfno] [-x] [-q] [tmpPath=] [--help] [--helpl] [--version]

パラメータ

a=

新たに追加される項目の名前を指定する。【但し、-nfn,-nfnoオプション指定時は必要なし】

e=

同Rankの処理方法

 

同一キー同一ソート項目値への処理方法を指定する。

 

指定しない場合は、デフォルトとして(e=seq)並び順でNoもしくは文字列が付け加えられる。

 

seq:同Rankの場合は並び順でNoもしくはアルファベット連番を付け加える。

 

same:同Rankの場合は同じNoもしくはアルファベットを付け加える。

 

skip:同Rankの場合は同じNoを振り、

 

次のNoはスキップするようにNoもしくはアルファベット連番を付け加える。

 

(注意)e={same/skip}を指定する場合は、s=パラメータを同時に指定しなければならない。

I=

連番の間隔を指定する。

k=

連番もしくは連文字をふる単位となる項目名リスト(複数項目指定可)を指定する。【集計キーブレイク処理】

 

(注意)指定する場合は事前にk=パラメータで指定する連番、

 

もしくは連文字をふる単位となる項目順に並べ替えておく必要がある。

s=

ここで指定した項目(複数項目指定可)で並べ替えられた後、連番が追加される。

 

-Bオプション指定時以外は必須。

S=

開始No

 

連番の開始Noを指定する。

 

大文字のアルファベットが指定された場合はアルファベット連番となる。

 

ただし、アルファベット連番の場合、間隔(I=)に負の値は指定できない。

-B

キー毎に連番もしくはアルファベット連番をふる。

 

あるキー内では全行同じNoもしくはアルファベットがふられる。

利用例

例1: 数字の連番

Customer項目名順(昇順)に連番を振り「No」という項目名で出力する。

$ more dat1.csv
Customer,Val,Sum
A,29,300
B,35,250
C,15,200
D,23,150
E,10,100
$ mnumber s=Customer a=No i=dat1.csv o=rsl1.csv
#END# kgnumber a=No i=dat1.csv o=rsl1.csv s=Customer
$ more rsl1.csv
Customer%0,Val,Sum,No
A,29,300,0
B,35,250,1
C,15,200,2
D,23,150,3
E,10,100,4

例2: Date項目順の連番

Date項目順(昇順)に連番をふる。その際、同じDateには同じNoを振り「No」という項目名で出力する。

$ more dat2.csv
Date
20090101
20090101
20090102
20090103
20090103
$ mnumber k=Date a=No -B i=dat2.csv o=rsl2.csv
#END# kgnumber -B a=No i=dat2.csv k=Date o=rsl2.csv
$ more rsl2.csv
Date%0,No
20090101,0
20090101,0
20090102,1
20090103,2
20090103,2

例3: Sum項目順の連番(同Rankは同じアルファベットをふる)

Sum項目の多い順(降順)にアルファベットのAから順に連文字を振り「Rank」という項目名で出力する。 また、同Rankの場合は同じアルファベット文字を振ることにする。

$ more dat3.csv
Customer,Val,Sum
A,3,300
B,1,250
C,2,250
D,1,150
E,1,100
$ mnumber a=Rank e=same s=Sum%nr S=A  i=dat3.csv o=rsl3.csv
#END# kgnumber S=A a=Rank e=same i=dat3.csv o=rsl3.csv s=Sum%nr
$ more rsl3.csv
Customer,Val,Sum%0nr,Rank
A,3,300,A
B,1,250,B
C,2,250,B
D,1,150,C
E,1,100,D

例4: Sum項目順の連番(同Rankは並び順でNoをふる)

Sum項目の多い順(降順)に連番を振り「Rank」という項目名で出力する。 その際、同Rankの場合は並び順でNoを振ることにする。

$ mnumber a=Rank e=seq s=Sum%nr i=dat3.csv o=rsl4.csv
#END# kgnumber a=Rank e=seq i=dat3.csv o=rsl4.csv s=Sum%nr
$ more rsl4.csv
Customer,Val,Sum%0nr,Rank
A,3,300,0
B,1,250,1
C,2,250,2
D,1,150,3
E,1,100,4

例5: Sum項目順の連番(同Rankは同じNoをふる)

Sum項目の多い順(降順)に連番を振り「Rank」という項目名で出力する。 その際、同Rankの場合は同じNoを振ることにする。

$ mnumber a=Rank e=same s=Sum%nr i=dat3.csv o=rsl5.csv
#END# kgnumber a=Rank e=same i=dat3.csv o=rsl5.csv s=Sum%nr
$ more rsl5.csv
Customer,Val,Sum%0nr,Rank
A,3,300,0
B,1,250,1
C,2,250,1
D,1,150,2
E,1,100,3

例6: Sum項目順の連番(同Rankの場合は同じRankNoを振り、次のNoはスキップ)

Sum項目の多い順(降順)に連番を振り「Rank」という項目名で出力する。 その際、同Rankの場合は同じRankNoを振り、次のNoはスキップするようにNoを振ることにする。

$ mnumber a=Rank e=skip s=Sum%nr i=dat3.csv o=rsl6.csv
#END# kgnumber a=Rank e=skip i=dat3.csv o=rsl6.csv s=Sum%nr
$ more rsl6.csv
Customer,Val,Sum%0nr,Rank
A,3,300,0
B,1,250,1
C,2,250,1
D,1,150,3
E,1,100,4

例7: 10から始まる連番

Sum項目の小さい順(昇順)に10から始まる連番を振り「Score」という項目名で出力する。 その際、同Rankの場合は同じRankNoを振り、次のNoはスキップするようにNoを振ることにする。

$ more dat4.csv
Customer,Val,Sum
A,1,100
B,1,150
C,1,250
D,2,250
E,3,300
$ mnumber a=Score e=same s=Sum%n S=10 i=dat4.csv o=rsl7.csv
#END# kgnumber S=10 a=Score e=same i=dat4.csv o=rsl7.csv s=Sum%n
$ more rsl7.csv
Customer,Val,Sum%0n,Score
A,1,100,10
B,1,150,11
C,1,250,12
D,2,250,12
E,3,300,13

例8: 10から始まる5つ飛びの連番

Sum項目の小さい順番(昇順)に10から始まる5つ飛びの連番を振り「Score」という項目名で出力する。 また、同Rankの場合は同じNoを振ることにする。

$ mnumber a=Score e=same s=Sum%n S=10 I=5 i=dat4.csv o=rsl8.csv
#END# kgnumber I=5 S=10 a=Score e=same i=dat4.csv o=rsl8.csv s=Sum%n
$ more rsl8.csv
Customer,Val,Sum%0n,Score
A,1,100,10
B,1,150,15
C,1,250,20
D,2,250,20
E,3,300,25

関連コマンド

mnewnumber : 新たに連番データを生成する場合に使う。

mbest : 行番号による選択であれば、mnumberを使わずともこのコマンドで。

Previous: mnullto NULL値の置換 Up: コマンドリファレンス Next: mpadding (行補完) コマンド MCMD2