Sponsored Content
Top Forums Shell Programming and Scripting Help in understanding awk expression Post 302601317 by Corona688 on Thursday 23rd of February 2012 10:44:55 AM
Old 02-23-2012
Code:
# Before the program is run, set the variable n to the value "POINT"
-v n="POINT"

# For every line containing % somewhere:
'/%/ {
        # Print the entire line, followed by a newline, followed by "POINT"
        print $0 "\n" n
        # Skip this line so the '1' below doesn't print it
        next
# The '1' after the code block tells it to print every single line.
# It could be an expression too.
} 1' < file name

But I would've just written it as:

Code:
awk -v n="POINT" '/%/ { $0=$0"\n" n } 1'

To avoid the 'print' and the 'next'. For any line matching %, it just changes the current line( $0 ) to add "\nPOINT" to the end, so the print-every-line statement prints correctly in both cases.
This User Gave Thanks to Corona688 For This Post:
 

10 More Discussions You Might Find Interesting

1. 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

2. 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

3. UNIX for Dummies Questions & Answers

Awk inside Awk expression

Hi, It can be used awk inside other Awk?. I need to get another text processing while other text process. Thank you. (2 Replies)
Discussion started by: pepeli30
2 Replies

4. 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

5. 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

6. UNIX for Dummies Questions & Answers

Understanding / Modifying AWK command

Hey all, So I have an AWK command here awk '{if(FNR==NR) {arr++;next} if($0 in arr) { arr--; if (arr == 0) delete arr;next}{print $0 >"list2output.csv"}} END {for(i in arr){print i >"list1output.csv"}}' list1 list2 (refer to image for a more readable format) This code was submitted... (1 Reply)
Discussion started by: Aussiemick
1 Replies

7. Shell Programming and Scripting

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: if ( F ) s = s ? s OFS $i : $i from:... (4 Replies)
Discussion started by: rveri
4 Replies

8. 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

9. 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

10. 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
Trace(3pm)						User Contributed Perl Documentation						Trace(3pm)

NAME
Devel::Trace - Print out each line before it is executed (like "sh -x") SYNOPSIS
perl -d:Trace program DESCRIPTION
If you run your program with "perl -d:Trace program", this module will print a message to standard error just before each line is executed. For example, if your program looks like this: #!/usr/bin/perl print "Statement 1 at line 4 "; print "Statement 2 at line 5 "; print "Call to sub x returns ", &x(), " at line 6. "; exit 0; sub x { print "In sub x at line 12. "; return 13; } Then the "Trace" output will look like this: >> ./test:4: print "Statement 1 at line 4 "; >> ./test:5: print "Statement 2 at line 5 "; >> ./test:6: print "Call to sub x returns ", &x(), " at line 6. "; >> ./test:12: print "In sub x at line 12. "; >> ./test:13: return 13; >> ./test:8: exit 0; This is something like the shell's "-x" option. DETAILS
Inside your program, you can enable and disable tracing by doing $Devel::Trace::TRACE = 1; # Enable $Devel::Trace::TRACE = 0; # Disable or Devel::Trace::trace('on'); # Enable Devel::Trace::trace('off'); # Disable "Devel::Trace" exports the "trace" function if you ask it to: import Devel::Trace 'trace'; Then if you want you just say trace 'on'; # Enable trace 'off'; # Disable TODO
o You should be able to send the trace output to the filehandle of your choice. o You should be able to specify the format of the output. o You should be able to get the output into a string. We'll see. LICENSE
Devel::Trace 0.11 and its source code are hereby placed in the public domain. Author Mark-Jason Dominus (C<mjd-perl-trace@plover.com>), Plover Systems co. See the C<Devel::Trace.pm> Page at http://www.plover.com/~mjd/perl/Trace for news and upgrades. perl v5.14.2 2012-02-16 Trace(3pm)
All times are GMT -4. The time now is 05:12 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy