#usr/bin.perl -w use strict; my $file1=<<END; test1.tst not_run test3.tst time:2 sec test6.tst time:2 sec test10009.tst timeL 39 sec END my $file2=<<END; test2.tst time:3 sec test3.tst time:6 sec test1.tst time:5 sec END open FILE1, '<', \$file1 or die "cannot open file1 $!"; open FILE2, '<', \$file2 or die "cannot open file2 $!"; my %seenFile1; while (<FILE1>) { my ($file_name) = $_ =~ (/^\s*(test\d\.tst)\s*/); $seenFile1{$file_name} = 1 if $file_name; } close FILE1; my @common; while (<FILE2>) { my ($file_name) = $_ =~ (/^\s*(test\d\.tst)\s*/); #as OP wants, save common names for other uses.... # push @common, $file_name if $seenFile1{$file_name}; } #one use is sort # foreach (sort {my ($Anum) = $a =~ /(\d+)/; my ($Bnum) = $b =~ /(\d+)/; $Anum <=> $Bnum }@common ) { print "$_\n"; } __END__ test1.tst test3.tst
In reply to Re: Extract common lines from 2 files
by Marshall
in thread Extract common lines from 2 files
by great_riyaz
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |