Sponsored Content
Top Forums Shell Programming and Scripting awk matching script not working as expected Post 303014850 by Chubler_XL on Wednesday 21st of March 2018 11:15:06 PM
Old 03-22-2018
You could try this script. I believe your OS should come with GNU awk by default so it's much more efficient to use the mktime() feature to convert these times.

Code:
#!/usr/bin/awk -f
{
  day=$1
  gsub(/-/, " ", day)
  split($2, t, ".")
  gsub(/:/, " ", t[1])
  x=mktime(day " " t[1]) + t[2] / 1000
  rectime[NR]=x
  records[NR]=$0
}

END {
   offset=5*60
   max=2*60
   for (rec in rectime) {
       cur=rec + 1
       target = rectime[rec] + offset
       offsetmin = target - max
       offsetmax = target + max
       best = 9999999
       found = 0
       while(cur in rectime && rectime[cur] < offsetmax) {
           if (rectime[cur] < target && rectime[cur] > offsetmin &&
               best > target - rectime[cur]) {
                  best= target - rectime[cur]
                  found=cur
           }
           if (rectime[cur] >= target) { 
              if(best > rectime[cur] - target) {
                  best=rectime[cur] - target
                  found=cur
               }
               break
           }
           cur++
        }

        if (found)
           print records[rec] " " records[found]
        else
           print records[rec] " NA NA"
    }
}


Last edited by Chubler_XL; 03-22-2018 at 12:22 AM..
This User Gave Thanks to Chubler_XL For This Post:
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

which not working as expected

Hello. Consider the following magic words: # ls `which adduser` ls: /usr/sbin/adduser: No such file or directory # Hmmm... Then: # ls /usr/sbin/adduser /usr/sbin/adduser # Now what? Unforunately this little sniippet is used in my debian woody server's mysql pre install script.... (2 Replies)
Discussion started by: osee
2 Replies

2. Shell Programming and Scripting

awk not working as expected with BIG files ...

I am facing some strange problem. I know, there is only one record in a file 'test.txt' which starts with 'X' I ensure that with following command, awk /^X/ test.txt | wc -l This gives me output = '1'. Now I take out this record out of the file, as follows : awk /^X/ test.txt >... (1 Reply)
Discussion started by: videsh77
1 Replies

3. Shell Programming and Scripting

Var substitution in awk - not working as expected

countA=`awk '/X/''{print substr($0,38,1)}' fName | wc -l` countB=`wc -l fName | awk '{print int($1)}'` echo > temp ratio=`awk -va=$countA -vc=$countB '{printf "%.4f", a/c}' temp` After running script for above I am getting an error as : awk: 0602-533 Cannot find or open file -vc=25. The... (3 Replies)
Discussion started by: videsh77
3 Replies

4. Shell Programming and Scripting

bash variable (set via awk+sed) not working as expected

Hi! Been working on a script and I've been having a problem. I've finally narrowed it down to this variable I'm setting: servername=$(awk -v FS=\/ '{ print $7 } blah.txt | sed 's\/./-/g' | awk -v FS=\- '{print $1}')" This will essentially pare down a line like this: ... (7 Replies)
Discussion started by: creativedynamo
7 Replies

5. Shell Programming and Scripting

Script not working as expected

Hi, I have prepared a script and trying to execute it but not getting expected output. Could you please help and advise what is going wrong. "If else" part in below script is not working basically. I am running it on HP-UX. for i in slpd puma sfmdb do echo "******\t$i\t*******" echo... (10 Replies)
Discussion started by: sv0081493
10 Replies

6. Shell Programming and Scripting

awk not working as expected in script

Dear all, I had script which used to work, but recently it is not working as expected. I have command line in my shell script to choose the following format from the output_elog and perform some task afterwards on As you see, I want all numbers in foramt following RED mark except for... (12 Replies)
Discussion started by: emily
12 Replies

7. Shell Programming and Scripting

awk command not working as expected

Following one line of awk code removes first 3 characters from each line but when I run the same code on another linux platform it doesn't work and only prints blank lines for each record. Can anyone please explain why this doesn't work? (31 Replies)
Discussion started by: later_troy
31 Replies

8. Shell Programming and Scripting

awk gsub not working as expected

Hi Experts, Need your kind help with gsub awk. Below is my pattern:"exec=1_host_cnt=100_dup=4_NameTag=targetSrv_500.csv","'20171122112948"," 100"," 1"," 1"," 4","400","","", " aac sample exec ""hostname=XXXXX commandline='timeout 10 openssl speed -multi 2 ; exit 0'"" ","-1","-1","1","... (6 Replies)
Discussion started by: pradyumnajpn10
6 Replies

9. UNIX for Beginners Questions & Answers

Passing Arguments to shell script from file is not working as expected.

Hi All, I have below simple shell script in cloudera quick start vm cenos 6 which copy file from source to destination. # file_copy.sh source_dir = ${source_dir} target = ${target_dir} cp source_dir target and my parameter file is like below #parameter_file.txt source_dir =... (4 Replies)
Discussion started by: Narasimhasss
4 Replies

10. UNIX for Beginners Questions & Answers

Why this script is not working as 'expected' when doing ssh with while read ... really confused?

Hi, I have a script below that is running ssh <host> <command> on some servers. Below is more or less the script. I have to modify it somehow to get rid of the 'confidential' hostnames check_log.bash #!/bin/bash # myPID=$$ parse_log () { sub="parse_log" host=${1} ... (2 Replies)
Discussion started by: newbie_01
2 Replies
INCM(1) 						      General Commands Manual							   INCM(1)

NAME
incm - Incorporating new mails for Mew SYNOPSIS
incm [options] DESCRIPTION
The incm utility incorporates new mails from the mbox or the maildir to Mew's inbox folder. The options are as follows: -a Retrieve all mails from maildir/{cur,new} for maildir. -b Backup mails. mbox: No truncate mbox file. maildir: To maildir/cur directory. -c Use the Content-Length: field, instead of the "From " line, as a mail separator for mbox. -d path Path to mbox/maildir. If path is a file, mbox is assumed. If path is a directory, maildir is assumed. -m path The same as the -d option. -s Read one mail from stdin instead of mbox/maildir. -i inboxdir A path to the inbox directory. -u Don't touch ".mew-mtime". -f Preserve Unix From (Envelope Sender) line in mbox case. -p mode Specify file mode that creates in mbox case. -o Use the suffix when creating messages. -x suffix Use this suffix. -h Display this help message. -v Display the version. mbox For mbox, the mail separator is "From " in the beginning of lines. The incm utility does not convert ">From " to "From " in the beginning of lines in the body. On Solaris, Content-Length: should be used with the -c option to tell the end of mail. To lock mbox, a lock file("<user>.lock"), flock() or lockf(), and open(O_EXLOCK) are used. maildir For maildir, no lock and no separator are necessary. Consider the following situation: cur/{1,2} new/{3,4} Executing incm without the options results in: cur/{1,2} new/{} to inbox: {3,4} Executing incm with the -a option results in: cur/{} new/{} to inbox: {1,2,3,4} Executing incm with the -b option results in: cur/{1,2,3,4} new/{} to inbox: {3,4} Executing incm with the -a option and the -b option results in: cur/{1,2,3,4} new/{} to inbox: {1,2,3,4} So, if both options are specified, messages are retrieved multiple times. December 25, 2001 INCM(1)
All times are GMT -4. The time now is 05:18 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy