Visit Our UNIX and Linux User Community


extract values from column with Perl


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting extract values from column with Perl
# 1  
Old 10-23-2009
extract values from column with Perl

Hi everybody
I have some problems with PERL programming.

I have a file with two columns, both with numeric values.
I have to extract the values > 50 from the 2nd columns and sum them among them.
The I have to sum the respective values in the first column on the same line and, at the end, I have to divide the sum of the first column values for the sum of the second column values > 50.

Can you help me? the script must be in Perl language.
Thank you very much,
Have a good weekend
M.Elena
# 2  
Old 10-24-2009
So as an example, you would have something like
Code:
1 20
3 40
7 60
8 90

The sum of the values in the second column which are larger than 50 is 60 + 90 = 150. The associated values in the first column are 7 + 8 = 15, so your answer is 15 / 150 = 0.1. Is that an accurate description of your problem?
# 3  
Old 10-24-2009
Oh yes, It's alright Figaro!
Could you help me with a Perl script?
# 4  
Old 10-24-2009
hi M.Elena,
here is the perl script which might help!!
Code:
#!/usr/bin/perl

$sum_col1=0;
$sum_col2=0;
while (<>)
{
  
  split(/ /);
  
 if ($_[1] > 50)
 {
     
    $sum_col2 += $_[1] ;
    $sum_col1 += $_[0] ;
 }
 
}
print("sum of col-2 is $sum_col2 \n");
print("sum of col-1 is $sum_col1 \n");

$rslt=$sum_col1/$sum_col2;

print("Answer is $rslt\n");


Code:
$ ./sol.pl ques 
sum of col-2 is 150 
sum of col-1 is 15 
Answer is 0.1

!!
# 5  
Old 10-25-2009
I suppose "split(/ /);" does the delimiting? So if the delimiter is a semicolon (;), you would have "split(/;/);", correct?
# 6  
Old 10-25-2009
exactly !!!!!!
when u write 'split()' alone, by default it assigns the splitted fields in built-in array @_,
so u can access its contents as $_[0,1...].
# 7  
Old 10-25-2009
ok, it's perfect

Thank you very much not only for your help but, by your script, I understood something about Perl Language!

have a good day,
Maria Elena

Previous Thread | Next Thread
Test Your Knowledge in Computers #932
Difficulty: Easy
Most first-generation personal computers did not keep track of dates and times.
True or False?

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Perl to extract values and print at end of each line

In the below perl I am trying to extract and print the values AF1=, the GT value, and F or QUAL diveded by 33 (rounded to the nearest whole #). The GT value is at the end after the GT:PL so all the possibilities are read into a hash h, then depending on the value that is in the line the... (1 Reply)
Discussion started by: cmccabe
1 Replies

2. Shell Programming and Scripting

Perl - Extract first column from file

Hi, I want to extract first column from a file and redirect the output to another file in perl. I am able to do this from command line by executing below commands. perl -anle 'print $F' Input.dat > Output.dat perl -ne '@F = split("\t", $_); print "$F\n";' Input.dat > Output.dat perl -anE... (7 Replies)
Discussion started by: Neethu
7 Replies

3. Shell Programming and Scripting

Extract values from a specific column to the end

Hello friends, I have a text file with many columns (no. columns vary from row to row) separated by space. I need to collect all the values from 18th column to the end from each line and group them as pairs and then numbering like below.. 1. 18th-col-value 19th-col-value 2. 20th-col-value ... (5 Replies)
Discussion started by: prvnrk
5 Replies

4. Shell Programming and Scripting

Perl regexp to extract first and second column

Hi, I am trying with the below Perl one-liner using regular expression to extract the first and second column of a text file: perl -p -e "s/\s*(\w+).*/$1/" perl -p -e "s/\s*.+\s(.+)\s*/$1\n/" whereas the text file's data looks like: Error: terminated 2233 Warning: reboot 3434 Warning:... (3 Replies)
Discussion started by: royalibrahim
3 Replies

5. Shell Programming and Scripting

Extract values from Perl variable

Hi Guys, I am stuck in a problem. I have a variable in Perl script which has value for example X=a-b-c; Now, I want to extract a b c separately into different 3 variables. I know this can be done in shell using awk but Perl behaves a bit different. Can anybody help me on this please?... (3 Replies)
Discussion started by: prashant2507198
3 Replies

6. Shell Programming and Scripting

Extract first column from second line in perl

Hello Gurus I have a source file which has the first line as header and the rest are the records I need to extract the first column from the second line to extract a value I/P ... (7 Replies)
Discussion started by: Pratik4891
7 Replies

7. Shell Programming and Scripting

for each different entry in column 1 extract maximum values from column 2 in unix/awk

Hello, I have 2 columns (1st column has multiple entries but the corresponding values in the column 2 may be the same or different.) however I want to extract unique values for each entry in column 1 by assigning the max value from column 2 SDF4 -0.211654 SDF4 0.978068 ... (1 Reply)
Discussion started by: Diya123
1 Replies

8. UNIX for Dummies Questions & Answers

How to extract one column from csv file in perl?

Hi everyone, i am new to perl programming, i have a problem in extracting single column from csv file. the column is the 20th column, please help me.. at present i use this code #!C:/perl/bin use warnings; use strict; my $file1 = $ARGV; open FILE1, "<$file1" or die "Can't... (13 Replies)
Discussion started by: kvth
13 Replies

9. Shell Programming and Scripting

perl-extract data from hash values

Hello, I have parsed an xml file using perl to get the hash values and the output looks like this $VAR1 = { 'RT' => { 'List' => { 'String' => ... (1 Reply)
Discussion started by: userscript
1 Replies

10. Shell Programming and Scripting

I need to extract last column of a file and compare the values

Hi, I am new to unix and I need help in solving below mentioned issue, really appreciate ur help. I have a file sam, john, 2324, 07142007 tom, thomson, 2343, 07142007 john, scott, 2478, 07142007 its a comma delimited file, I need to extract the last column from each line and this... (4 Replies)
Discussion started by: vukkusila
4 Replies

Featured Tech Videos