Help in Understanding awk if ( F ) syntax -


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Help in Understanding awk if ( F ) syntax -
# 1  
Old 05-13-2014
Help in Understanding awk if ( F ) syntax -

Hi Experts,

I was looking at the below link, for finding words next to it, And unable to understand this syntax:
Can any one please explain , what is meaning of this code:



Code:
if ( F )
s = s ? s OFS $i : $i

from:
HTML Code:
https://www.unix.com/unix-for-dummies-questions-and-answers/226523-match-pattern-after-certain-pattern-print-words-next-pattern.html
Thanks..

Last edited by vgersh99; 05-13-2014 at 07:45 PM.. Reason: fixed code tags for better understanding
# 2  
Old 05-13-2014
Code:
if ( F )
  s = s ? s OFS $i : $i

if expression F is true, then concatenate string 's' with value of field 'i' preceded with the output field separator OFS (if s is not empty). If 's' is empty assign the value of field 'i' to it.
It can be re-written as:
Code:
if ( F )
   if (s) 
     s= s OFS $i
   else
     s=$i

This User Gave Thanks to vgersh99 For This Post:
# 3  
Old 05-13-2014
F can only be true if F is 0 or 1 or has numeric value , is it correct. Thanks..
# 4  
Old 05-14-2014
Quote:
Originally Posted by rveri
F can only be true if F is 0 or 1 or has numeric value , is it correct. Thanks..

In awk, A true is defined as if it contains any non-zero numeric value or any non-empty string.

So in your case, if F is not null or not zero then its true.
# 5  
Old 05-14-2014
Quote:
Originally Posted by rveri
F can only be true if F is 0 or 1 or has numeric value , is it correct. Thanks..
Any non-blank string except 0 is 'true':
0False
1True
2True
 False
aTrue
abctrue
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Understanding awk 'expansion'

Heyas Recently i wanted to help someone with an awk script, but the end-script didnt work as expected. He wanted, if HOME was empty, to get the HOME of the current USER from /etc/passwd. At first i tried hardcoded with root: awk -F: '/^root/ {print $6}' /etc/passwd As that worked, i've... (4 Replies)
Discussion started by: sea
4 Replies

2. Shell Programming and Scripting

awk : Need Help in Understanding a command

Hello I am working on a Change request and Stuck at a point. The below awk command is used in the function. float_test ( ) { echo | awk 'END { exit ( !( '"$1"')); }' } I understand that awk 'END' is used to add one line at the end and exit is used to end the script with an error... (4 Replies)
Discussion started by: rahul2662
4 Replies

3. UNIX for Dummies Questions & Answers

Understanding awk

I found this on an awk site and would like to know what it does: /CARS/{x="";next} {if(x)print x;x=$0} END{if(x)print x}' Does it mean if it finds the word cars it skips that line and then prints the next one? (4 Replies)
Discussion started by: newbie2010
4 Replies

4. Shell Programming and Scripting

Syntax error, not understanding the issue?

Close please. Refer to following thread: Sub Menu issues (2 Replies)
Discussion started by: Banned
2 Replies

5. Shell Programming and Scripting

Help in understanding awk expression

Hi, Could somebody help me in understanding the following awk expression: awk -v n="POINT" '/%/{print $0 "\n" n ;next}1' < file name Thanks, Arun (6 Replies)
Discussion started by: arun_maffy
6 Replies

6. UNIX for Advanced & Expert Users

understanding awk in this script

i am analyzing a query written by another developer ,need to understand part of script am looking at a code ..and it converts comma files to pipe delimited and also takes away quotes from any columns, source field format: 2510,"Debbie",NewYork changes to target: 2510|Debbie|NewYork ... (1 Reply)
Discussion started by: coolrock
1 Replies

7. UNIX for Dummies Questions & Answers

understanding part of an awk script

Hi I have an awk script running in ksh in which a section of code is picking out the datetime as follows: dia=`echo $starttime | nawk '{ printf "%02d\n", substr($1,9,2)}'` mes=`echo $starttime | nawk '{ printf "%02d\n", substr($1,6,2)}'` ano=`echo $starttime | nawk '{ printf "%02d\n",... (3 Replies)
Discussion started by: shajju
3 Replies

8. Shell Programming and Scripting

Understanding Awk and Cat

Hi Guys, I was recently come across some code to hopefully learn a little bit about putting Shell commands into PHP application to run on a Linux server. However, I don't understand the command AT ALL... and was wondering if anyone can interpret it: cat userIDs.dat | awk '{s=s+1; if... (1 Reply)
Discussion started by: jordRiot
1 Replies

9. Shell Programming and Scripting

Help understanding syntax error Issue

Hi i as you may already know i am creating a menu driven program. I have chosen to take the approach of implementing each interface individually, after adding another interface and attempting to run the program i am faced with the following error: ./Assigntest: line 32: syntax error near... (6 Replies)
Discussion started by: warlock129
6 Replies

10. Shell Programming and Scripting

Need help on understanding the Shell and AWK scripts

Hello Friends, I am new to the scripting & have to analyze bunch of regular production scripts. It has .ksh which calls on the .awk script having many functions I need to understand and debug the scripts ASAP Can anybody please let me know as how can I debug, I want to see the flow of code... (3 Replies)
Discussion started by: amberj123
3 Replies
Login or Register to Ask a Question