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:
file3ABS0056 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
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |