1DBMERGE(1) User Contributed Perl Documentation DBMERGE(1)
2
3
4
6 dbmerge - merge all inputs in sorted order based on the the specified
7 columns
8
10 dbmerge --input A.fsdb --input B.fsdb [-T TemporaryDirectory] [-nNrR] column [column...]
11
12 or
13 cat A.fsdb | dbmerge --input - --input B.fsdb [-T
14 TemporaryDirectory] [-nNrR] column [column...]
15
16 or
17 dbmerge [-T TemporaryDirectory] [-nNrR] column [column...] --inputs
18 A.fsdb [B.fsdb ...]
19
20 or
21 { echo "A.fsdb"; echo "B.fsdb" } | dbmerge --xargs column
22 [column...]
23
25 Merge all provided, pre-sorted input files, producing one sorted
26 result. Inputs can both be specified with "--input", or one can come
27 from standard input and the other from "--input". With "--xargs", each
28 line of standard input is a filename for input.
29
30 Inputs must have identical schemas (columns, column order, and field
31 separators).
32
33 Unlike dbmerge2, dbmerge supports an arbitrary number of input files.
34
35 Because this program is intended to merge multiple sources, it does not
36 default to reading from standard input. If you wish to list - as an
37 explicit input source.
38
39 Also, because we deal with multiple input files, this module doesn't
40 output anything until it's run.
41
42 dbmerge consumes a fixed amount of memory regardless of input size. It
43 therefore buffers output on disk as necessary. (Merging is implemented
44 a series of two-way merges, so disk space is O(number of records).)
45
46 dbmerge will merge data in parallel, if possible. The "--parallelism"
47 option can control the degree of parallelism, if desired.
48
50 General option:
51
52 --xargs
53 Expect that input filenames are given, one-per-line, on standard
54 input. (In this case, merging can start incrementally.)
55
56 --removeinputs
57 Delete the source files after they have been consumed. (Defaults
58 off, leaving the inputs in place.)
59
60 -T TmpDir
61 where to put tmp files. Also uses environment variable TMPDIR, if
62 -T is not specified. Default is /tmp.
63
64 --parallelism N or -j N
65 Allow up to N merges to happen in parallel. Default is the number
66 of CPUs in the machine.
67
68 --endgame (or --noendgame)
69 Enable endgame mode, extra parallelism when finishing up. (On by
70 default.)
71
72 Sort specification options (can be interspersed with column names):
73
74 -r or --descending
75 sort in reverse order (high to low)
76
77 -R or --ascending
78 sort in normal order (low to high)
79
80 -n or --numeric
81 sort numerically
82
83 -N or --lexical
84 sort lexicographically
85
86 This module also supports the standard fsdb options:
87
88 -d Enable debugging output.
89
90 -i or --input InputSource
91 Read from InputSource, typically a file name, or "-" for standard
92 input, or (if in Perl) a IO::Handle, Fsdb::IO or Fsdb::BoundedQueue
93 objects.
94
95 -o or --output OutputDestination
96 Write to OutputDestination, typically a file name, or "-" for
97 standard output, or (if in Perl) a IO::Handle, Fsdb::IO or
98 Fsdb::BoundedQueue objects.
99
100 --autorun or --noautorun
101 By default, programs process automatically, but Fsdb::Filter
102 objects in Perl do not run until you invoke the run() method. The
103 "--(no)autorun" option controls that behavior within Perl.
104
105 --header H
106 Use H as the full Fsdb header, rather than reading a header from
107 then input.
108
109 --help
110 Show help.
111
112 --man
113 Show full manual.
114
116 Input:
117 File a.fsdb:
118
119 #fsdb cid cname
120 11 numanal
121 10 pascal
122
123 File b.fsdb:
124
125 #fsdb cid cname
126 12 os
127 13 statistics
128
129 These two files are both sorted by "cname", and they have identical
130 schemas.
131
132 Command:
133 dbmerge --input a.fsdb --input b.fsdb cname
134
135 or
136
137 cat a.fsdb | dbmerge --input b.fsdb cname
138
139 Output:
140 #fsdb cid cname
141 11 numanal
142 12 os
143 10 pascal
144 13 statistics
145 # | dbmerge --input a.fsdb --input b.fsdb cname
146
148 dbmerge2(1), dbsort(1), Fsdb(3)
149
151 Copyright (C) 1991-2019 by John Heidemann <johnh@isi.edu>
152
153 This program is distributed under terms of the GNU general public
154 license, version 2. See the file COPYING with the distribution for
155 details.
156
157
158
159perl v5.30.0 2019-09-19 DBMERGE(1)