Hi I have a file with data like this.
-1 2 ereu 1 2 rerer 2 2 rere 3 2 eee 3 2 wwwe 9 2 qqewew 9 2 vvvgf -1 2 wwwew 4 3 wwew -9 3 wwss 6 3 jjuu 7 3 kkii 7 3 ggtyu 8 3 ffder 1 4 rrtrr 1 4 rree
If the values in 2nd column are same, calculate the minimum value in the first column and print corresponding lines. My desired output is;
-1 2 ereu -1 2 wwwew -9 3 wwss 1 4 rrtrr 1 4 rree
I wrote a code like this.
#! usr/bin/perl use warnings; use strict; my @a = <> ; my @b = (); foreach (@a) { push (@b, split(/ /)); } my $i = 0; my $j = 1; my $min = $b[0]; my $x = 0; while ($x++ < 150) { $j = $j+3; $i = $i+3; if ($b[$j] = $b[$j+3]) { if ($min > $b[$i]) { $min = $b[$i] } } } print "$min\n";
But the code ignores the condition if ($b$j = $b$j+3) and prints just the minimum value of first column. My idea was to use a regex involving the minimum value to print the corresponding lines. Obviously I am a newbie to Perl. Can experts help me please? thanks in advance.
In reply to Selective Printing of Lines by polsum
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |