Hello! I want to match two large data files to match and print only identical id data.

file1:

ABS0056

ABS0057

ABS0058

ABS0059

...........

file2:

id “ABS0056”; name “SAM”;

id “ABS0059”; name “JOE”;

id “ABS0060”; name “MARY”;

id “ABS0057”; name “BILL”;

id “ABS0057”; name “BILL”;

id “ABS0056”; name “SAM”;

id “ABS0065”; name “RONIE”;

id “ABS0061”; name “STEPHAN”

id “ABS0057”; name “BILL”;

id “ABS0056”; name “SAM”;

........

I used awk to remove semicolon and inverted commas. These two columns are separated by tab. So my file looks like this:

file3

ABS0056 SAM

ABS0059 JOE

ABS0060 MARY

ABS0057 BILL

ABS0057 BILL

ABS0056 SAM

ABS0065 RONIE

ABS0061 STEPHAN

ABS0057 BILL

ABS0056 SAM

..............

I want my output in following data format:

ABS0056 SAM

ABS0057 BILL

ABS0059 JOE

I have tried using code as below:

#!/usr/bin/env perl use strict; use warnings; open FILE1, "< file1" or die; my $keyRef; while (<FILE1>) { chomp; $keyRef->{$_} = 1; } close FILE1; open FILE3, "< file3" or die; while (<FILE2>) { chomp; my ($testKey, $name) = split("\t", $_); if (defined $keyRef->{$testKey}) { print STDOUT "$_\n"; } } close FILE3;

Thanking in advance


In reply to print data with matching id from two different files by mao9856

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.