G'day linseyr,
Welcome to the monastery.
This works with the data you've provided.
#!/usr/bin/env perl use strict; use warnings; my %least_ref; open my $reference, '<', $ARGV[0] or die "Can't open reference ($ARGV[ +0]): $!"; while (<$reference>) { my ($key, $val) = split; if (not exists $least_ref{$key} or $val < $least_ref{$key}) { $least_ref{$key} = $val; } } close $reference; open my $testfile, '<', $ARGV[1] or die "Can't open testfile ($ARGV[1] +): $!"; while (<$testfile>) { my ($key, $val) = split; print "$key\t", $least_ref{$key} - $val, "\n"; } close $testfile;
Input files:
$ cat > pm_least_diff.ref chr1 40 chr1 50 chr2 60 chr2 80 chr3 100
$ cat > pm_least_diff.test chr1 30 chr2 20 chr2 50 chr3 80
Script output:
$ pm_least_diff.pl pm_least_diff.ref pm_least_diff.test chr1 10 chr2 40 chr2 10 chr3 20
-- Ken
In reply to Re: compare text files
by kcott
in thread compare text files
by linseyr
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |