http://qs321.pair.com?node_id=392720


in reply to comparing arrays

The simple solutions is using textutils

join <(sort -n file1) <(sort -n file2)

(Update: the solution above is wrong. Thanks to L~R for warning me about it. The corrected version is below, which btw finds matches only if the numbers in the first column match textually, not only numerically.)

join <(sort -b file1) <(sort -b file2)

And here's a perl solution, dedicated to merlyn.

use warnings; use strict; use Quantum::Superpositions; my $s = do { open my $e, "<", "file1" or die 1; any(<$e>); }; { open my $m, "<", "file2" or die 2; while(<$m>) { $_=~/(\S+)/ and $1==$s and print; }; } __END__

Update 2009 sep 2.

See Re^2: Joining two files on common field for a list of other nodes where unix textutils is suggested to merge files.