I must have copied the wrong version of the code for you to look at, or, your highlighter got it wrong (it happens quite a bit with shell scripts and quotes within quotes within...). In any case the part that goes
is necessary.
Basically it turns this [25/Jun/2014:18:57:07 --700] into this 25-Jun-2014 18:57:07 --700 which is then digestible by date so we can return a UNIX timestamp.
... ... ...
NO! It does not. The command:
and the command:
will both set LogDate to the current time as a integer value specifying the number of seconds since the Epoch. I repeat: The date utility does not read from standard input! The echo, sed, and tr utilities in that pipeline have absolutely no effect on the value returned other than that the time needed to start those three additional processes might delay response by a second or two depending on your hardware and system load.
Quote:
Originally Posted by nybbles2bytes
I repeat: The code in red above is shell commands; not awk commands. Sticking shell commands inside the action section of a BEGIN clause in an awk script does not make them awk commands. THIS WILL NOT WORK!
I understand that you want to prepend a reference date and a reformatted version of the date from a line at the start of some lines in your log file. Processing would be hundreds to thousands of times faster per line if we can put the timestamps at the start of the line as YYYYMMDDHHmmSS instead of as seconds since the Epoch, but it isn't easy to get the seconds between the two from this format. I repeat: Do you NEED the number of seconds between these two timestamps on each line?
The script that I posted:
should produce exactly the same output as your 1-liner did. If you changed your 1-liner to use now-3 hours instead of now-2 second, you can also make that change. It will affect the timestamp printed in the awk output, but will not affect anything else. I can't verify that they are equivalent because date on my system does not support the -d option you're using, the input you have given me does not contain any lines that will be matched by your grep command, and the RE you're using with grep is not supported by the grep I'm using; but I'm sure they will produce the same output if given the same input at the same time.
It's well past my bedtime, so I'm going to bed. Please post a more complete sample of your log file along with an answer to the above question about the need for the difference between the two timestamps when you get to work later this morning and I'll take another look at it this afternoon.
Hi guys
I have a shell script that executes sql statemets and sends the output to a file.the script takes in parameters executes sql and sends the result to an output file.
#!/bin/sh
echo " $2 $3 $4 $5 $6 $7
isql -w400 -U$2 -S$5 -P$3 << xxx
use $4
go
print"**Changes to the table... (0 Replies)
Hello,
I have this awk script that I want to execute by passing parameters through a shell script.
I'm a little confused. This awk script removes duplicates from an input file.
Ok, so I have a .sh file called rem_dups.sh
#!/usr/bin/sh... (4 Replies)
hi everyone
i am trying to do this
bash> cat abc.sh
deepak()
{
echo Deepak
}
deepak
bash>./abc.sh
Deepak
so it is giving me write simply i created a func and it worked
now i modified it like this way
bash> cat abc.sh (2 Replies)
This is the final first release of the dynamic menu generator for pekwm (WM).
#!/bin/bash
function param_val {
awk "/^${1}=/{gsub(/^${1}="'/,""); print; exit}' $2
}
echo "Dynamic {"
for CF in `ls -c1 /usr/share/applications/*.desktop`
do
name=$(param_val Name $CF)
... (3 Replies)
I am getting the following error while passing parameter to a shell script called within awk script. Any idea what's causing this issue and how to ix it ? Thanks
sh: -c: line 0: syntax error near unexpected token `newline'
sh: -c: line 0: `./billdatecalc.sh ... (10 Replies)
Discussion started by: Sudhakar333
10 Replies
7. Post Here to Contact Site Administrators and Moderators
Variable I have in my shell script
diff=$1$2.diff
id=$2
new=new_$diff
echo "My id is $1"
echo "I want to sync for user account $id"
##awk command I am using is as below
cat $diff | awk -F'~' ''$2 == "$id"' {print $0}' > $new
I could see value of $id is not passing to the awk... (0 Replies)
I have a shell script (.sh) and I want to pass a parameter value to the awk command but I am getting exception, please assist.
diff=$1$2.diff
id=$2 new=new_$diff
echo "My id is $1"
echo "I want to sync for user account $id"
##awk command I am using is as below
cat $diff |... (1 Reply)
Hi
I have a text file (Input.txt) with two column entries separated by tab as given below:
aaa str1
bbb str2
cccccc str3
dddd str4
eee str3
ssss str2
sdf str3
hhh str1
fff str2
ccc str3
.....
.....
..... (1 Reply)
I'm trying to create a shell script that takes a awk script that I wrote and a filename as an argument. I was able to get that done but I'm having trouble figuring out how to keep the header of the output at the top but sort the rest of the rows alphabetically. This is what I have now but it is... (1 Reply)