if first line of file2 is a primary key, below will work. But if not, it will fail like this ...
use strict; use warnings; my $file1=<<EOF; 23 SNP_A-4293670 0 2713391 24 SNP_A-4293670 0 2713391 25 SNP_A-1780270 0 1111111 26 SNP_A-1780271 0 2222222 EOF my $file2=<<EOF; SNP_A-1780270 ss75925050 rs987435 SNP_A-1780271 ss75925050 rs000001 SNP_A-4293670 ss75925050 rs999999 SNP_A-4293670 ss75925050 xxxxxxxx EOF my %lookup; foreach my $line ( split( /\n/, $file2) ){ my @line=split(/\s+/,$line); $lookup{$line[0]}=$line[2]; } print "k=$_,v=$lookup{$_}\n" for keys %lookup; foreach my $line ( split( /\n/, $file1) ){ my @line=split(/\s+/,$line); printf "%s\t%s\t%s\t%s\n", $line[0], $lookup{$line[1]}, $line[2], +$line[3]; }

result

23 xxxxxxxx 0 2713391 24 xxxxxxxx 0 2713391 25 rs987435 0 1111111 26 rs000001 0 2222222
first column of the seconde file is the problem. Is it unique key?

In reply to Re: Replace data in the column of one file with corresponding ones in another file by remiah
in thread Replace data in the column of one file with corresponding ones in another file by Renyulb28

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.