MCMD Ver. 1.0 では、たとえばmsumコマンドでキー項目を指定して集計する場合や、mjoinコマンドで 複数のファイルをキー項目で結合する場合、事前にmsortfコマンドを使用してキー項目を並べ替えておく 必要があった。
多くのコマンドで事前の並べ替えが必要であり、また並べ替えを忘れてもエラーになることなく 誤った結果を出力して処理を終えるため、スクリプトにバグを生みやすいという難点があった。 そこで、k=オプションでキー項目を指定するすべてのコマンドで、項目の並べ替えを自動的に行う 機能を追加したのがVer. 2.0の最大の変更点である。 どの項目で並べ替えられたのかがCSVヘッダの項目名にも追加されるため (詳細は項目の並べ替え情報参照) 、各コマンドは並べ替えが必要であるときのみ並べ替えを行う。
msum k=顧客 コマンドを実行する前に、msortfコマンドで顧客項目を 並べ替えておく必要があった。
$ more dat1.csv 顧客,金額 A,10 B,10 A,20 B,15 B,20 $ msortf i=dat1.csv f=顧客 | msum k=顧客 f=金額:金額合計 o=rsl1.csv #END# kgsortf f=顧客 i=dat1.csv #END# kgsum f=金額:金額合計 k=顧客 o=rsl1.csv $ more rsl1.csv 顧客,金額合計 A,30 B,45
msumコマンドが並べ替えの要否を判断し、必要であれば自身で並べ替えるため、 msortfコマンドを省略しても正しい結果が得られる。 msumコマンドが顧客項目で並べ替えた証左として、 項目名に%0が付加されている。
$ more dat1.csv 顧客,金額 A,10 B,10 A,20 B,15 B,20 $ msum i=dat1.csv k=顧客 f=金額:金額合計 o=rsl1.csv #END# kgsum f=金額:金額合計 k=顧客 i=dat1.csv o=rsl1.csv $ more rsl1.csv 顧客%0,金額合計 A,30 B,45