(Video materials in preparation)
dmerge : Merges files based on a key
Usage : dmerge key=<pos> <file1> <file2> ..
Options : -e
-s<c>
Version : Tue Jan 9 09:02:34 JST 2024
Edition : 3
Merges the specified files <file1> <file2>... based on the key
field specified as key=<pos>. Each file must already be sorted
on the specified field. <key> designates the field position as
fllows:
single field 2 the 2nd field
NF the last field
NF-1 the field just before the last field
contiguous fields 2/4 from the 2nd field to the 4th field
4/2 from the 4th field to the 2nd field
NF-3/NF from NF-3 field to the NF field
combination 2@NF the 2nd field and the NF field
There is no limit on the length of the key field or on the number
of key fields. The key field can also contain multi-byte characters
such as Japanese.
If you specify "r" as comparison method after the field position,
the fields are compared in reverse order. If you specify "n" as
comparison method after the field position, that field's values will
be compared as numbers. If you specify "nr" as comparison method
after the field, the values will be compared in reverse order as
numbers. If you specify comparison method before or after the "/",
you must use the same comparison method for both fields.
2n/5n OK
2n/5nr Error
2n/5r Error
When you specify "e" as comparison method or specify -e ootion and no
method, characters in the field are replaced as follows and compared
as string:
_ ==> 0x20 (space)
\0 ==> 0x00 (null)
\t ==> 0x09 (tab stop)
\n ==> 0x0a (new line)
\r ==> 0x0d (carrige return)
\_ ==> 0x5f (underscore)
\\ ==> 0x5c (back slash)
Merge three files on the first field (files are sorted on this field).
$ cat file1
A 1
A 2
B 1
B 2
$ cat file2
A 3
A 4
B 3
B 4
$ cat file3
B 5
B 6
C 1
C 2
Merge file1, file2 and file3.
The order of the records in file1, file2 and file3 is not defined.
$ dmerge key=1 file1 file2 file3
A 1
A 2
A 3
A 4
B 3
B 4
B 5
B 6
B 1
B 2
C 1
C 2