Shell variable in awk


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Shell variable in awk
# 1  
Old 09-17-2010
Shell variable in awk

I have 3 files and each contain m*n matrix.
m = number of rows (horizontal lines)
n = number of columns (entries in a particular line)

What I wish to find is the sum of the 2nd number in the last row.
Ex

file1.dat

2 5 8 8
4 6 7 8
3 8 3 7

file2.dat
3 4 1 4
8 4 0 3
4 7 3 7

file3.dat
9 6 3 5
8 4 8 4
7 5 6 8

The desired result is 8+7+5 ie., 20


What I tried is;
Code:
i=1
sum1=0
while [ $i -lt 4 ]
do
tail -1 file$i.dat | awk '{print $2+"$sum1"}'
let i=$i+1
done
echo $sum1

But this is not working.
Please help....
Thanks in advance
__________________

Last edited by jim mcnamara; 09-17-2010 at 11:53 AM.. Reason: code tags
# 2  
Old 09-17-2010
Try this:
Code:
tail -1 file$i.dat | awk '{print $2+"'${sum1}'"}'

# 3  
Old 09-17-2010
Hi felipe
Thank you very much. It solved my problem partially. What I was looking for is

Code:
sum1=0
do while i < 4
sum1 = sum1 + last_row_second_column_element_of_file(i)
i=i+1
end do
print sum1

Initially I have to pass a variable into awk and then retrieve it back to shell....

Thanks in advance for the help.

Last edited by Scott; 09-17-2010 at 01:32 PM.. Reason: Code tags, please...
# 4  
Old 09-17-2010
This code:
Code:
i=1
sumValue=0
while [ ${i} -lt 4 ]
do
	value=`tail -1 file$i.dat | awk '{print $2}'`
	sumValue=`expr ${sumValue} + ${value}`
	i=`expr ${i} + 1`
done
echo ${sumValue}

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

How can I assign awk's variable to shell script's variable?

I have the following script, and I want to assign the output ($10 and $5) from awk to N and L: grdinfo data.grd | awk '{print $10,$5}'| read N L output from gridinfo data.grd is: data.grd 50 100 41 82 -2796 6944 0.016 0.016 3001 2461. where N and L is suppose to be 3001 and 100. I use... (8 Replies)
Discussion started by: geomarine
8 Replies

2. Shell Programming and Scripting

Shell variable expansion in awk

I want to split one file input.tab into two separate ones, odd lines to input_reads1.txt, even lines to input_reads2.txt for a serial of files with similar name pattern. Also I want to "match" input/output file names to keep consistency of file name: CSEL_02.0_input.tab CSEL_03.4_input.tab... (2 Replies)
Discussion started by: yifangt
2 Replies

3. Shell Programming and Scripting

Awk: How to get an awk variable out to the shell, using system() ?

I am reasonably capable with awk and its quirks, but not with shell weirdness. This has to be Bourne Shell for portability reasons. I have an awk program that is working just fine; it handles multiple input streams and produces several reports, based on the request (-v Variables). In addition... (3 Replies)
Discussion started by: DerekAsirvadem
3 Replies

4. Shell Programming and Scripting

How to use shell variable in awk?

How do you use a shell variable in awk? I am using Solaris 10 and don't have GNU products installed. File (transportation.txt) contents: car boat airplane snowmobile bicycle sled This awk statment works (prints from the car line down to bicycle awk '/car/,/bicycle/'... (8 Replies)
Discussion started by: thibodc
8 Replies

5. Shell Programming and Scripting

use shell variable in awk command

Trying to do something like this ls -lrt | awk '$9=="test5"' -rw-r--r-- 1 lrmq db2iadm1 381 Sep 20 21:56 test5 But now, I need to give a variable in place of test5. For example let's define x as test5 x=test5 ls -lrt | awk '$9=="$x"' This doesn't seem to be working. It doesn't take the... (4 Replies)
Discussion started by: blazer789
4 Replies

6. Shell Programming and Scripting

How to change awk and shell variable value?

In awk script, #!/bin/sh awk 'BEGIN{i=0;}{i=i+5;}END{print i}' in.txt vr=0; vr=$i; echo "$vr" How can i assign that value of i in $vr(variable) of shell script? (7 Replies)
Discussion started by: cola
7 Replies

7. Shell Programming and Scripting

assign awk's variable to shell script's variable?

Dear All, we have a command output which looks like : Total 200 queues in 30000 Kbytes and we're going to get "200" and "30000" for further process. currently, i'm using : numA=echo $OUTPUT | awk '{print $2}' numB=echo $OUTPUT | awk '{print $5}' my question is : can I use just one... (4 Replies)
Discussion started by: tiger2000
4 Replies

8. Shell Programming and Scripting

Return Awk Variable to Shell

I'm a bit stuck in getting variable from awk to shell. I tried searching but most of them showing to assign to shell variable via.. VAR=`echo $line | awk -F: '{print $1}'` which is correct ofcourse My problem is multiple assignments of variable like this one. The above solution will give... (10 Replies)
Discussion started by: ryandegreat25
10 Replies

9. Shell Programming and Scripting

Shell variable with awk

line_no=6 echo 'Phone,' `awk 'NR==$line_no{print;exit}' <filename>` what is the error in this.. it says.. awk: Field $() is not correct. The input line number is 1. The file is <filename>. The source line number is 1. i want to print the data in the $line_no line of a certain... (2 Replies)
Discussion started by: St.Fartatric
2 Replies

10. Shell Programming and Scripting

shell variable in awk

Hi All, How can i use the file for printing in awk file1 ---------- update table crn_ras_disc_dtl a set a.a5=$1,a.a1=$2,a.a2=$3,a.a3=$4,a.a4=$5; file2 -------- 10|KUMAR|23|MALE|US 20|RAJ|24|MALE|AU Output --------- update table crn_ras_disc_dtl a set... (12 Replies)
Discussion started by: cskumar
12 Replies
Login or Register to Ask a Question