combine - Man Page
combine sets of lines from two files using boolean operations
Examples (TL;DR)
- Output lines that are in both specified files:
combine path/to/file1 and path/to/file2
- Output lines that are in the first but not in the second file:
combine path/to/file1 not path/to/file2
- Output lines that in are in either of the specified files:
combine path/to/file1 or path/to/file2
- Output lines that are in exactly one of the specified files:
combine path/to/file1 xor path/to/file2
Synopsis
combine file1 and file2
combine file1 not file2
combine file1 or file2
combine file1 xor file2
_ file1 and file2 _
_ file1 not file2 _
_ file1 or file2 _
_ file1 xor file2 _
Description
combine combines the lines in two files. Depending on the boolean operation specified, the contents will be combined in different ways:
- and
Outputs lines that are in file1 if they are also present in file2.
- not
Outputs lines that are in file1 but not in file2.
- or
Outputs lines that are in file1 or file2.
- xor
Outputs lines that are in either file1 or file2, but not in both files.
"-" can be specified for either file to read stdin for that file.
The input files need not be sorted, and the lines are output in the order they occur in file1 (followed by the order they occur in file2 for the two "or" operations). Bear in mind that this means that the operations are not commutative; "a and b" will not necessarily be the same as "b and a". To obtain commutative behavior sort and uniq the result.
Note that this program can be installed as "_" to allow for the syntactic sugar shown in the latter half of the synopsis (similar to the test/[ command). It is not currently installed as "_" by default, but you can alias it to that if you like.
See Also
Author
Copyright 2006 by Joey Hess <id@joeyh.name>
Licensed under the GNU GPL.