Beefy Boxes and Bandwidth Generously Provided by pair Networks
more useful options
 
PerlMonks  

je44ery's scratchpad

by jffry (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 chilling in the Monastery: (7)
As of 2015-07-08 00:25 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (93 votes), past polls