Hello, This question was posted and answered on StackOverflow: I have two files that I would like to match based on the first letter of the second column in File1 and the first letter of the third column in File2. For example:
Below is my script:File1 1 H 35 1 C 22 2 H 20 2 C 30 File 2 A 1 HB2 MET 1 A 2 CA MET 1 A 3 HA ASP 2 A 4 CA ASP 2 Output 1 MET HB2 35 1 MET CA 22 2 ASP HA 20 2 ASP CA 30
#!/usr/bin/perl use strict; use warnings; my %data; open (SHIFTS,"file1.txt") or die; open (PDB, "file2.txt") or die; while (my $line = <PDB>) { chomp $line; my @fields = split(/\t/,$line); $data{$fields[4]} = $fields[2]; } close PDB; while (my $line = <SHIFTS>) { chomp($line); my @columns = split(/\t/,$line); my $value = ($columns[1] =~ m/^.*?([A-Za-z])/ ); } if (my $value = $data{"$_"}) print "$columns[0]\t$fields[3]\t$value\t$data{$value}\n"; close SHIFTS; exit;
I am not sure how to implement the match, my if statement above is not correct. Any advice would be greatly appreciated.
In reply to Match two files using regex by chemshifts
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |