[Solved] Help understanding this code!!


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting [Solved] Help understanding this code!!
# 1  
Old 10-30-2013
[Solved] Help understanding this code!!

Hi guys,

I am still learning awk and much apprecated to shed some light on the following: the questions asked is below!

Code:
{
	total = i = 0
	do {
		++i
		total += $i
	} while ( total <= 100 )
	print i, ":", total
}

File used:
Code:
cat test.do
45 25 60 20
10 105 50 40
33 5 9 67
108 3 5 4

Output

Code:
3 : 130
2 : 115
4 : 114
1 : 108



Two questions :

1)
Code:
$i

--> how does it reference each field individually? i am used to $1 or $2 to reference fields or $NF for instance.

2) when it does test for condition
Code:
while ( total <= 100 )

and its true; it prints out
Code:
print i, ":", total

and then it goes to the next line. but how? where in the code that say that does that?

sorry if these seemed to be silly but i rather understand and ask than not to Smilie
# 2  
Old 10-30-2013
awk code consists of a begin, end and middle section. The middle section is executed per record or line and so there is an implicit loop. Any section can be omitted. The section you posted is from the middle section, and so is excuted by line. $i means evalute i and use the field that corresponds to that number, for example if i = 2 then $i means $2

Last edited by Scrutinizer; 10-30-2013 at 06:11 AM..
This User Gave Thanks to Scrutinizer For This Post:
# 3  
Old 10-30-2013
Quote:
Originally Posted by Scrutinizer
awk code consists of a begin, end or middle section. The middle section is executed per record or line and so there is an implicit loop. Any section can be omitted. The section you posted is from the middle section, and so is excuted by line. $i means evalute i and use the field that corresponds to that number, for example if i = 2 then $i means $2
Thank you!!!
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Understanding bash code

I am not able to understand below line in unix bash shell.Could anyone explain what it will do result="${path1}/*${var1}*${var2}*wssreligibleitem*.csv" path1 is defined and it is a directory path var1 is defined and it holds string value like abc var2 is defined and it holds string value like... (6 Replies)
Discussion started by: vamsi.valiveti
6 Replies

2. UNIX for Dummies Questions & Answers

[Solved] Need help understanding ksh scripting.

Can any one please tell me where the error in below script. Output is not as per my requirement. if condition not comparing the result of record count of a file with 1. where is the pbm in my script? Appreciate your help.. #!/bin/ksh #Module- #Summary- To move the file to direcotries if... (9 Replies)
Discussion started by: shivadanam
9 Replies

3. Programming

Understanding perl code

What is the difference between the two statements below? A: $a->{"$fruit"}->{"$color"}->{size} = $size B: $size = $a->{"$fruit"}->{"$color"}->{size} Please assist. Thanks! (0 Replies)
Discussion started by: onlinelearner02
0 Replies

4. Shell Programming and Scripting

Help understanding some Perl code.

Well, I found myself trying to fix some Perl code (Ive never done any Perl in my life) and I pinpointed the place where the bug could be. But to be sure I have to know what does a few line of code mean: $files_lim =~ (/^\d*$/) $files_lim =~ (/^\d*h$/) $files_age =~ s/h// The code where... (2 Replies)
Discussion started by: RedSpyder
2 Replies

5. Shell Programming and Scripting

Help understanding Perl code.

Well, I found myself trying to fix some Perl code (Ive never done any Perl in my life) and I pinpointed the place where the bug could be. But to be sure I have to know what does a few line of code mean: $files_lim =~ (/^\d*$/) $files_lim =~ (/^\d*h$/)$files_age =~ s/h//The code where this was... (0 Replies)
Discussion started by: RedSpyder
0 Replies

6. UNIX Desktop Questions & Answers

Understanding the code

hello all, May i know what is this "DEBUG_ME $DEBUG_CMD main" doing in the below code. I am confused with alias also "alias DEBUG_ME='#'". Thanks for your help. set -x alias DEBUG_ME='#' if ; then . /product/apps/informatica/v7/pc/ExtProc/debug.ksh "$1" fi # Declaring the... (1 Reply)
Discussion started by: Ariean
1 Replies

7. UNIX for Dummies Questions & Answers

Problems understanding example code

I am really new to UNIX and programming in general and so apologies if this thread is a bit simple. I have searched and found a piece of sample code for a training program I am currently undertaking, but seeing as I am relatively new, I dont completely understand how it works. Here is the... (6 Replies)
Discussion started by: Makaer
6 Replies

8. Shell Programming and Scripting

Problems understanding example code

I am really new to UNIX and programming in general and so apologies if this thread is a bit simple. I have searched and found a piece of sample code for a training program I am currently undertaking, but seeing as I am relatively new, I dont completely understand how it works. Here is the... (1 Reply)
Discussion started by: Makaer
1 Replies

9. UNIX for Dummies Questions & Answers

Understanding Code in IF LOOP

Hello All, I would like to know and understand the difference between the below 3 IF loops and also if possible what are the different other parameters i could use other than those mentioed in the below lF LOOP conditions, appreciate your help. Thanks, Sam. (1 Reply)
Discussion started by: Ariean
1 Replies

10. Shell Programming and Scripting

Need help in understanding thisperl code.

Can any body explains the under given lines of code i have difficulties in understanding it, my $errorlog = "/var/log/controler.log"; &initLanguage($language); &launchCbox(); sub launchCbox { ... (1 Reply)
Discussion started by: Raheel Hassan
1 Replies
Login or Register to Ask a Question