Description
Perform set operations on files.
Description
Find more information on the project homepage.
README.md
Setop: Perform set operations on files
Rationale
Set operations are a convenient solution to common problems:
- create a list of tasks without duplicates (set union)
- filter tasks done out of tasks to do (set difference)
- find common elements in a database (set intersection)
- and remove theses elements (set symmetric difference)
Setop helps you run these set operations on your files.
Usage
Let's introduce two line-separated files: A.txt
and B.txt
.
A.txt
contains all numbers from 0 to 5 included
0
1
2
3
4
5
B.txt
contains all even numbers from 0 to 8 included
0
2
4
6
8
Set Union (U/Union):
$ setop A.txt U B.txt
0
1
2
3
4
5
6
8
Set Difference (D/Diff):
$ setop A.txt D B.txt
1
3
5
Set Intersection (I/Inter):
$ setop A.txt I B.txt
0
2
4
Set Symmetric Difference (J/Disj):
$ setop A.txt J B.txt
1
3
5
6
8
Reading A.txt from STDIN:
$ cat A.txt | setop STDIN Diff B.txt
0
2
4
Reading B.txt from STDIN:
$ cat B.txt | setop A.txt Disj STDIN
1
3
5
6
8
Notes
- the resulting set is sorted in ascending order
- some set operations are not commutative (e.g. A Diff B /= B Diff A)
- Setop is based on optparse-applicative and supports bash/fish/zsh completions.