merge 使用方法
【機能概要】
複数のファイルをフィールド単位にマージします。
【実行形式】
merge option1 mfile tfile1 {[[option2] tfile2]}... [option3]
【パラメータ】
mfile マスターファイル
tfile トランザクションファイル
option1:
-h 各ファイルの先頭行をヘッダーとみなします。
-tc フィールドの区切り文字をcで指定します。
省略した場合には、','となります。
-e フィールドデータを該当フィールドで最大の長さに拡張します。
-b[c1c2] フィールドを括る開始文字c1と終了文字c2を指定します。
もしそれらの文字を省略した場合には、'"'となります。
-s1 skeys マスターファイルをソートするキーを指定します。
skeysは次の形式で指定します。
no[:{c|n}[:d][,...]
上記の意味は次のようになっています。
no :フィールド番号
c :文字列として比較(デフォルト)
n :数値として比較
d :降順にソート
-s2 skeys トランザクションファイルをソートするキーを指定します。
-m mkeys マージする場合の比較条件を指定します。
mkeysは次のものをカンマで区切って指定します。
no1[:no2[:{c|n}[:d]]]
上記の意味は次のようになっています。
no1 :マスターファイルmfile1のフィールド番号
no2 :トランザクションファイルのフィールド番号
これを省略した場合、no1と同じになります。
c :文字列として比較(デフォルト)
n :数値として比較
d :降順に比較
-a actions マージアクションを指定します。
actionsは以下のものをカンマで区切って指定します。
(1)a:no1[-no2]
フィールド番号no1のものを追加します。
またはフィールド番号no1からフィールド番号no2までのものを追加します。
(2)m:no1:no2
トランザクションファイルのフィールド番号no1のものを
マスターのフィールド番号no2のフィールドに転送します。
マスターのフィールド番号というのは、マスターファイルまたは
マージアクションの結果生成されるフィールドのことです。
(3)s:no1:no2
トランザクションファイルのフィールド番号no1のものを
マスターのフィールド番号no2のフィールドが空白の場合に転送します。
(4)i:no1:no2
トランザクションファイルのフィールド番号no1のものをマスターの
フィールド番号no2のフィールドの前に挿入します。
(5)I:text:no",
文字列textをマスターのフィールド番号noのフィールドの前に挿入します。
textに ':'を記述する場合は、'\:'として下さい。
(6)c:exp
計算式expの結果を追加します。
expは括弧を含む四則演算式です。
フィールドデータを参照する場合には
$noまたは$({no|no1:no2}[,…])
で指定します。
前者はno番目のフィールドの数値です。
後者は各項の総和で、noはno番目のフィールドの数値、
no1:no2はno1番目からno2番目までのフィールドの数値の総和となります。
例えば、"$1*$2"はマスターのフィールド1のデータにフィールド2のデータを
掛けた値が追加されます。
ただし演算精度は15桁となります。
option2:
-s1 skeys マスターをソートするキーを指定します。
-s2 skeys トランザクションファイルをソートするキーを指定します。
-m mkeys マージする場合の比較条件を指定します。
これを省略した場合、直前で設定されたものとなります。
-a actions マージアクションを指定します。
これを省略した場合、直前で設定されたものとなります。
option3:
-s1 skeys マスターをソートするキーを指定します。
【補足説明】
式の計算で、フィールドデータを数値に変換する場合、次の書式に従っている必要があります。
[space][{+|-}][{9|,}*][.[9*]][{e|E}[{+|-|' '}]9*][space][x*]
ここで、spaceは ' 'またはタブコードからなる文字列、9は数字、xは任意の文字、*は直前の 繰返し、{x|x|...}は括弧の中からの選択、[ ]は省略可を意味します。
ただし、整数部の中のカンマは、整数部の先頭にあったり、次の文字が数字でない場合には、数値とみなされません。
例えば、"-,100"や"100,"は数値とみなされません。
数値とみなされないフィールドデータは 0となります。
また、数値は倍精度浮動小数点で表される範囲内のものである必要があります。そうでない場合、その値は保証されません。
倍精度浮動小数点は、2.2×10-308〜1.7×10308の値となります。
【実行例】
・merge -h -m 1 -a a:2-5 master tran
・merge "-t|" -m 1:2:n:d -s1 1:n:d -s 2:n:d -a m:3:4 master tran
・merge -m 1 -a c:10*($1-$2)+$(4-10,20) master tran
・merge -m 1 -a a:2 -s1 1 -s2 1 master tran1 -m 1:3 -s2 3 tran2 -s1 1:c:d
ホームページへ