Explanation of Nawk command


 
Thread Tools Search this Thread
Top Forums UNIX for Beginners Questions & Answers Explanation of Nawk command
# 1  
Old 03-26-2019
Explanation of Nawk command

Hi Folks,

I am struggling to understand nawk command which was used by another developer.
Can you please explain what each character or string is doing here below:

Code:
if [ `nawk -F, 'NR==FNR {s=s sep $2; sep="|"; next} $0~s {c++} END {print c+0}' ${Error_file} ${Log_File_Name}` -gt 0 ] ; then


Last edited by Scrutinizer; 03-26-2019 at 02:15 PM.. Reason: code tags
# 2  
Old 03-26-2019
By just staring at it, I'd guess it creates an "alternation regex" from the second, comma separated field of the lines of ${Error_file}, then scans through ${Log_File_Name} if its lines match any of those, counts the matches, and finally prints the count to stdout, to be used by a "command substitution" in the shell if [ construct.
# 3  
Old 03-27-2019
Code:
{s=s sep $2; sep="|"; next} $0~s {c++} END {print c+0}

In the above, where is it mentioned that it is a 'comma' separated field.

what does 'sep' denotes here. sep="|" i was thinking that it is a pipe separator.

and what does s=s denotes here ?




Moderator's Comments:
Mod Comment Please use CODE tags as required by forum rules!

Last edited by RudiC; 03-27-2019 at 06:27 AM.. Reason: Added CODE tags.
# 4  
Old 03-27-2019
Quote:
Originally Posted by kirans.229
Code:
{s=s sep $2; sep="|"; next} $0~s {c++} END {print c+0}

In the above, where is it mentioned that it is a 'comma' separated field.
Nowhere. -F, sets the field separator.


Quote:
what does 'sep' denotes here. sep="|" i was thinking that it is a pipe separator.
That's a variable name, and yes, it's intended to be used a separator


Quote:
and what does s=s denotes here ?
It a variable assignment, but incompletely quoted. s=s sep $2 is the complete one, assigning the concatenation of s'(old) value, sep, and field two to (new) s .
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

sed command explanation

Will someone give me an explanation on how the sed command below works. sed 's/.*//' Thanks! (3 Replies)
Discussion started by: scj2012
3 Replies

2. UNIX for Dummies Questions & Answers

Explanation of the sort command

Hi everyone, I am wondering if someone could please break down and explain the following sort command for me: ls ${DEST_LOCATION}/${FILES} | sort -rt -k 4,4n | head -1 I have tried working it out using 'man sort', but on AIX there is not a great explanation of this function. I know that... (9 Replies)
Discussion started by: jimbojames
9 Replies

3. Shell Programming and Scripting

Need explanation a of command in linux

Hi All I ran a script in Linux. In the script i have lines like && echo "Failed: Missing ${CM_ENV_FILE} \n" && return 1 . ${CM_ENV_FILE} Where CM_ENV_FILE = /data/ds/dpr_ebicm_uat//etl/cm3_0/entities/BBME/parameters/cm.env But its taking this path... (1 Reply)
Discussion started by: vee_789
1 Replies

4. UNIX for Advanced & Expert Users

command explanation

can anyone please tell me what does this expression means , i am under probation and need some explanation :) $AUDIT_DIR -type f -mtime +$AUDIT_EXPIRE \ -exec rm {} > /dev/null 2>&1 \; AUDIT_DIR="/var/log/" AUDIT_EXPIRE='30' Please use code tags! (4 Replies)
Discussion started by: semaan
4 Replies

5. Shell Programming and Scripting

sed sorting command explanation

sed '$!N; /^\(.*\)\n\1$/!P; D' i found this file which removes duplicates irrespective for sorted or unsorted file. keep first occurance and remove the further occurances. can any1 explain how this is working.. i need to remove duplicates following file. duplicate criteria is not the... (3 Replies)
Discussion started by: mukeshguliao
3 Replies

6. UNIX for Dummies Questions & Answers

Explanation of NAWK Code

Hi all, I need your help in understanding the meaning and syntax of the below nawk line. Here is an extract of a script which I use daily and works well. The script extracts the hostnames and messages within a syslog file. I would also like to extract the message time in the 3rd column by... (2 Replies)
Discussion started by: wthomas
2 Replies

7. UNIX for Dummies Questions & Answers

SED command explanation

can someone please explain the below sed command.. sed 's/\(*|\)\(.*\)/\2\1/' (6 Replies)
Discussion started by: raghu_shekar
6 Replies

8. Shell Programming and Scripting

nawk code explanation

Hi I have a line/command which greps certain pattern () from the file and 22 lines AFTER that: nawk '/\/{c=22}c&&c--' input_file Can somebody explain the coding in this command (what " c&&c-- " does)? and how to modify this command to output 22 lines BEFORE this pattern () Thanks a lot ... (3 Replies)
Discussion started by: aoussenko
3 Replies

9. Shell Programming and Scripting

command line explanation

Hello everyone, I found this command line in a website: perl -pi.bak -we's/\z/Your new line\n/ if $. == 2;' your_text_file.txt With this command line you can insert a new line anywhere you want in a text without overwriting what's in it. -p causes perl to assume a loop around your... (4 Replies)
Discussion started by: goude
4 Replies

10. Shell Programming and Scripting

sed command explanation needed

Hi, Could you please explain me the below statement -- phrase wise. sed -e :a -e '$q;N;'$cnt',$D;ba' abc.txt > xyz.txt if suppose $cnt contains value: 10 it copies last 9 lines of abc.txt to xyz.txt why it is copying last 9 rather than 10. and also what is ba and $D over there in... (4 Replies)
Discussion started by: subbukns
4 Replies
Login or Register to Ask a Question