(Video materials in preparation)
taglink1x : Joins together tag data that exists in the tag master.
Records that do not match are discarded.
Usage : taglink1x [+ng[<fd>]] <mast_key>=<tran_key>... <master> <tran>
Version : Fri May 12 13:53:17 JST 2017
Edition : 1
Matches the field specified with <mast_key> in tag-formatted file <master>
with the field specified with <tran_key> in tag-formatted file <tran>,
joins the matching rows in tag format and outputs them to standard output.
You can specify multiple paris of <mast_key>=<tran_key>
Non-matching lines are discarded, but if you use the +ng option these
lines are output to standard error in tag format.
Unlike taglink1 the key field of <master> does not need to have unique
values. Records are joined together where the key field of <master> and
<tran> are the same.
If <master> is specified as "-" then the command reads from standard input.
If <tran> is omitted or specified as "-" then the command reads from
standard input.
If either <master> or <tran> are zero byte files, an error occurs.
Even if <master> and/or <tran> are null files (contain only a tag header),
the command processes normally.
1. Both <master> and <tran> must be sorted on the key field (excluding
the tag header).
$ keta master
M.CODE M.NAME M.AGE M.SEX
0003 SMITH 026 WOM
0005 JONES 050 MAN
0005 JONES 048 WOM
0007 WILSON 042 WOM
$ keta tran
T.SEQ T.CODE T.A1 T.A2 T.A3
001 0003 30 50 71
001 0004 58 71 20
001 0005 82 79 16
$ taglink1x M.CODE=T.CODE master tran | keta
M.CODE M.NAME M.AGE M.SEX T.SEQ T.CODE T.A1 T.A2 T.A3
0003 SMITH 026 WOM 001 0003 30 50 71
0005 JONES 050 MAN 001 0005 82 79 16
0005 JONES 048 WOM 001 0005 82 79 16
$ taglink1x +ng M.CODE=T.CODE master tran >ok 2>ng
$ keta ok
M.CODE M.NAME M.AGE M.SEX T.SEQ T.CODE T.A1 T.A2 T.A3
0003 SMITH 026 WOM 001 0003 30 50 71
0005 JONES 050 MAN 001 0005 82 79 16
0005 JONES 048 WOM 001 0005 82 79 16
$ keta ng
T.SEQ T.CODE T.A1 T.A2 T.A3
001 0004 58 71 20
You can use a different output than standard error to avoid mixing data
with error messages.
$ taglink1x +ng3 M.CODE=T.CODE master tran >ok 3>ng
$ cat tran | taglink1x M.CODE=T.CODE master
$ cat tran | taglink1x M.CODE=T.CODE master -
$ cat master | taglink1x M.CODE=T.CODE - tran