Combine sort
, uniq
and join
to
perform the equivalent of set operations on files:
Command | outcome |
---|---|
sort -u file1 file2 | Union of unsorted files |
sort file1 file2 | uniq -d | Intersection of unsorted files |
sort file1 file1 file2 | uniq -u | Difference of unsorted files |
sort file1 file2 | uniq -u | Symmetric Difference of unsorted files |
join -t '' -a1 -a2 file1 file2 | Union of sorted files |
join -t '' file1 file2 | Intersection of sorted files |
join -t '' -v2 file1 file2 | Difference of sorted files |
join -t '' -v1 -v2 file1 file2 | Symmetric Difference of sorted files |
All examples above operate on entire lines and not on specific fields:
sort
without -k and join -t ''
both consider
entire lines as the key.