up3
名前
up3 : 二つのファイルを同一キーフィールドでマージする
書式
使い方とオプション
Usage
up3 key=<pos> <master> <tran>
Option
-e -s<c>
説明
引数のファイル又は標準入力のトランザクションファイル <tran> の各レコードを、key=<pos> で指定したフィールドの値をマスターファイル <master>の同一キーフィールドの値と比較し、値が同じ <master> ファイルのレコードの下に挿入、マージをするツールです。<master> <tran> とも、キーとなるフィールドはソートされている必要があります。
例(その1)
$ cat master # 1日目~3日目までのデータ a店 1日目 103 62 a店 2日目 157 94 a店 3日目 62 30 b店 1日目 210 113 b店 2日目 237 121 b店 3日目 150 82 c店 1日目 81 52 c店 2日目 76 49 c店 3日目 38 21 $ cat tran # 4日目~5日目までのデータ a店 4日目 131 84 a店 5日目 189 111 b店 4日目 198 105 b店 5日目 259 189 c店 4日目 81 48 c店 5日目 98 61 $ up3 key=1 master tran > data $ cat data <- 1日目~5日目までマージされている。 a店 1日目 103 62 a店 2日目 157 94 a店 3日目 62 30 a店 4日目 131 84 <- "master" の "a店" のレコードの下に a店 5日目 189 111 <- "tran" の "a店" のレコードが挿入される。 b店 1日目 210 113 b店 2日目 237 121 b店 3日目 150 82 b店 4日目 198 105 b店 5日目 259 189 c店 1日目 81 52 c店 2日目 76 49 c店 3日目 38 21 c店 4日目 81 48 c店 5日目 98 61
複数のキーフィールドを指定する場合は、“key=2@1” の様に“@” でつないで指定します。連続したキーフィールドを指定する場合は、“key=3/7” の様に“/” でつないで指定します。
キーの長さやキーフィールド数の制限はありません。日本語などのマルチバイト文字が含まれていても構いません。フィールド位置の後に r を付けると、そのフィールドは降順にソートされます。n を付けると数値として比較されます。nr を付けると、数値として比較されて降順にソートされます。/ の前後のフィールドにソート種別を付ける場合は、前後で揃っている必要があります。
up3 key=2n/5n file1 file2 ○ up3 key=2n/5nr file1 file2 × up3 key=2n/5r file1 file2 ×
-e オプションを指定すると、以下の置換を行った文字列で比較を行います。
_ → 0x20 (space) ¥0 → 0x00 (null) ¥t → 0x09 (tab stop) ¥n → 0x0a (new line) ¥r → 0x0d (carrige return) ¥_ → 0x5f (under score) \\ → 0x5c (back slash)
この置換の _ は、-s<c> オプションで変更することができます。
Version and Edition
Version : Tue Jan 12 23:04:38 JST 2021
Edition : 3
© 2021 Universal Shell Programming Laboratory site