Please get into the habit of using indentation to show the structure of your code. It makes it a lot easier for humans to see what you're trying to do even if the awk interpreter (and the Korn shell) don't much care about spacing in the scripts they process (as long as reserved words are separated as required by their lexical analyzers).
I guess I confused you by separating the format string used by printf() to format its output from the printf() statement itself. Please look at your system's man page for the awk utility and look closely at its description of the awk printf() function.
As had been mentioned before, $dd in awk is not a reference to an awk variable named dd, it is a reference to the contents of the field specified by the numeric value of the contents of the awk variable dd. References to variables in the awk programming language and references to variables in the shell programming language are different. So, $dd (when dd contains 2013/03/07) is not valid; but, even if it was, $dd inside quotes in the format string will print the literal string $dd not the contents of the dd'th field in the current input line (which has no defined meaning in the END clause).
Try the following:
Code:
#!/bin/ksh
printf "Enter the date (YYYY/MM/DD): "
read dd
awk -F '[ :]' -v dd="$dd" '
$1 == dd && /successful/ {
s[$2 + 0, $3 > 29]++
t++
}
END { for(h = 0; h < 24; h++)
for(m = 0; m <= 1; m++)
printf("Batches that were successful on %s between %02d:%02d:00 and %02d:%02d:59 : %d\n",
dd, h, m * 30, h, m * 30 + 29, s[h, m])
dl = "----------------------------------------------------------------"
printf("%s\nTotal Batches that were sucessful on %s: %d\n%s\n",
dl, dd, t, dl)
}' log
I would normally split that format string into two parts (so my script would be easily readable on an 80 column output device:
Code:
printf("Batches that were successful on %s between " \
"%02d:%02d:00 and %02d:%02d:59 : %d\n",
dd, h, m * 30, h, m * 30 + 29, s[h, m])
but I didn't want to confuse you by splitting the format string into two parts.
This User Gave Thanks to Don Cragun For This Post:
Hi All,
I have a xml file for example as described below
<xml>
<address>
<street><street>
<address/>
<isbn>426728783932020308393930303</isbn>
<book>
<name>
</name>
</book>
.
.
.
</xml>
My problem is to get the isbn number from the above described file using ksh script. Could... (6 Replies)
I want a shell script which extract data from a log file which contains date and time-wise data and i need the data for a perticular interval of time...what can i do??? (3 Replies)
Hello,
I need help about a shell script
I have a text file with this fields:
2009/01/19 09:33:35: --> ---ORA-28817: PL/SQL function returned an error.
2009/01/19 09:33:35: --> ---ORA-28817: PL/SQL function returned an error.
2009/01/19 09:33:35: --> ---ORA-28817: PL/SQL function returned an... (4 Replies)
Hi i am writing a cron job.
so for it i need the 60 days old date form current date in variable.
Like today date is 27 jan 2011 then output value will be stote in variable in formet Nov 27.
i am using EST date, and tried lot of solution and see lot of post but it did not helpful for me. so... (3 Replies)
I am trying to write a script that will allow me to train others with commands that I run manually by only allowing the exact command before continuing onto the next set of commands. Here is where I come into an issue. I have changed the directories for this post.
Software we run creates files... (2 Replies)
A happy Monday to you all,
I have a .csv file which contains data taken every 5 seconds. I want to average these 5 second data points into 30 minute averages!
date co2
25/06/2011 08:04 8.31
25/06/2011 08:04 8.32
25/06/2011 08:04 8.33... (18 Replies)
Hi...
I am very new to shell scripting. I have written a script with help of this forum and some googling and it works the way I want it to. Currently this script checks for my SIP trunk registration every 5 seconds, if registration is not available then it reboots my router through telnet... (4 Replies)
Hi
I searched this forum before posting the question, but couldnt find it, the issue
i'm facing is, i'm trying to select a column from a netezza table from a korn
shell script, but the query runs
var=$(nzodbcsql -q "select MAX(millcount) from table1";)
echo $var
it returns the value like... (10 Replies)
Hi All,
I have an issue which I'm trying to understand a way of doing, I have several nodes which contain syslog events which I want to force trigger an email initially (eventually leading to another method of alerting but to start with an email).
Basically the syslog file will have hours worth... (6 Replies)
Discussion started by: mutley2202
6 Replies
LEARN ABOUT OPENSOLARIS
igawk
IGAWK(1) Utility Commands IGAWK(1)NAME
igawk - gawk with include files
SYNOPSIS
igawk [ all gawk options ] -f program-file [ -- ] file ...
igawk [ all gawk options ] [ -- ] program-text file ...
DESCRIPTION
Igawk is a simple shell script that adds the ability to have ``include files'' to gawk(1).
AWK programs for igawk are the same as for gawk, except that, in addition, you may have lines like
@include getopt.awk
in your program to include the file getopt.awk from either the current directory or one of the other directories in the search path.
OPTIONS
See gawk(1) for a full description of the AWK language and the options that gawk supports.
EXAMPLES
cat << EOF > test.awk
@include getopt.awk
BEGIN {
while (getopt(ARGC, ARGV, "am:q") != -1)
...
}
EOF
igawk -f test.awk
SEE ALSO gawk(1)
Effective AWK Programming, Edition 1.0, published by the Free Software Foundation, 1995.
AUTHOR
Arnold Robbins (arnold@skeeve.com).
ATTRIBUTES
See attributes(5) for descriptions of the following attributes:
+--------------------+-----------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+--------------------+-----------------+
|Availability | SUNWgawk |
+--------------------+-----------------+
|Interface Stability | Volatile |
+--------------------+-----------------+
NOTES
Source for gawk is available on http://opensolaris.org.
Free Software Foundation Nov 3 1999 IGAWK(1)