Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw
 
PerlMonks  

je44ery's scratchpad

by je44ery (Hermit)
on Jul 15, 2008 at 21:17 UTC ( #697804=scratchpad: print w/ replies, xml ) Need Help??

Set intersection and complement one-liners.

$ cat A; echo '* * * * *'; cat B apple cherry carrot lime * * * * * lime orange banana

A ∩ B
Intersection of A and B.

$ perl -e 'open F,$ARGV[0] or die;shift;my %set = map {$_ => 1 } <>; f +or (<F>) {print if $set{$_}};' A B lime

B / A
Complement of B relative to A.

$ perl -e 'open F,$ARGV[0] or die;shift;my %set = map {$_ => 1 } <>; f +or (<F>) {print unless $set{$_}};' A B apple cherry carrot

The first argument is always set A. The union of all the other arguments is set B. Thus:

$ cat C grape apricot cherry $ perl -e 'open F,$ARGV[0] or die;shift;my %set = map {$_ => 1 } <>; f +or (<F>) {print unless $set{$_}};' A B C apple carrot $ perl -e 'open F,$ARGV[0] or die;shift;my %set = map {$_ => 1 } <>; f +or (<F>) {print if $set{$_}};' A B C cherry lime
Log In?
Username:
Password:

What's my password?
Create A New User
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others romping around the Monastery: (6)
As of 2014-07-29 01:36 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    My favorite superfluous repetitious redundant duplicative phrase is:









    Results (211 votes), past polls