09-15-2010
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
*************Script********
Line 1 cat $out_location/BACI_1000|\
Line 2 awk -v sep=' "" ' \ {
Line 3for (i=1;i<=length($0);i++)
Line 4 {ch=substr($0,i,1)
Line 5if (ch==sep)(inside-!inside}
Line 6if (inside&&ch=="|")
Line 7ch=","
Line 8 printf("%s".ch)
Line 9}
Line 10printf("\n")
Line 11}'>$out_location/aci_10temp
i am not sure why in line 1 is BACI_1000| with a pipe is referred instead of only ACI_1000
line 2 : what is SEP i know IFS is used for field separator ..is it same..also same line why is back slash used before curly brackets
line3:think it searches for lenght of column what does $0 refer here.. i know it refers to command itself in general but not clear
line 4:check for length of column in field 1
line 5:did not understand...(what is inside?)
line 6:did not understand
line 7: did not understand
line 8:does it print the column after removing quotes
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
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
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
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
4. UNIX for Dummies Questions & Answers
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
5. Shell Programming and Scripting
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. Shell Programming and Scripting
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
7. UNIX for Dummies Questions & Answers
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
8. Shell Programming and Scripting
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
9. Shell Programming and Scripting
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
10. UNIX for Beginners Questions & Answers
Below script is called as Reducer, I am not sure how it work, can some expert explain me what this script does as i am a beginner.
inputfile:
hi hi how are are you
code:
#!/bin/bash
lastkey=""; -- what does this mean, because i saw in debug mode it is taking value as hi
count=0;... (13 Replies)
Discussion started by: mirwasim
13 Replies
LEARN ABOUT DEBIAN
logtop
LOGTOP(1) General Commands Manual LOGTOP(1)
NAME
logtop - Realtime log line rate analyser
SYNOPSIS
logtop [OPTIONS]
DESCRIPTION
logtop is a System Administrator tool analyzing line rate on stdin.
It reads on stdin and print a constantly updated result
displaying, in columns:
Line number, count, frequency, and the actual line.
$ tail -f FILE | logtop
is the friendly version of:
$ watch 'tail FILE | sort | uniq -c | sort -gr'
OPTIONS
-s, --size=K
Only keep K lines in memory, instead of 10000.
-q, --quiet
Do not display a live view of the data, only display a top at exit.
-l, --line-by-line=K
Print result line by line, in a machine friendly format, K is the number of result to print per line.
Line by line format is : [%d %f %s ]*
%d : Number of occurences
%f : Frequency of apparition
%s : String (Control chars replaced by dots.
-i, --interval=K
Interval between graphical updates, in seconds. Defaults to 1.
-h, --help
Show summary of options.
-v, --version
Show version of program.
EXAMPLES
Here are some logtop usage examples.
tail -f cache.log | grep -o "HIT|MISS" | logtop
Realtime hit / miss ratio on some caching software log file.
tail -f access.log | cut -d' ' -f1 | logtop -s 10000
Realtime most querying IPs on your server, as long as log lines in access.log starts with the client IP.
tail -f access.log | cut -d' ' -f7 | logtop -s 10000
Realtime most requested web pages in a NCSA like log file.
cat auth.log | grep -v "CRON" | grep -o ": .*" | logtop -q -s 100000
Display a one-shot simple analyse of your auth.log.
SEE ALSO
watch(1)
AUTHOR
logtop was written by Julien Palard.
This manual page was written by Julien Palard <julien@palard.fr>, for the Debian project (and may be used by others).
April 16, 2011 LOGTOP(1)