An utility script to perform set operations on files.
Médéric Hurier fa9a674ea2 Update 'LICENSE.txt' 2 months ago
.hooks Updated README for initial push 1 year ago
bench Renamed setops to setop 1 year ago
bin Removed extensions from cabal file 1 year ago
doc Removed extensions from cabal file 1 year ago
src Removed extensions from cabal file 1 year ago
test Removed extensions from cabal file 1 year ago
.ghci Finished set operations implementation 1 year ago
.gitignore Finished set operations implementation 1 year ago
CHANGELOG.md Removed extensions from cabal file 1 year ago
LICENSE.txt Update 'LICENSE.txt' 2 months ago
README.md Update README.md 8 months ago
Setup.hs Finished set operations implementation 1 year ago
setop.cabal Update setop.cabal 7 months ago
stack.yaml Finished set operations implementation 1 year ago

README.md

Setop: Perform set operations on files

hackage

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