grep a log file between 2 dates


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting grep a log file between 2 dates
# 29  
Old 07-02-2007
Quote:
Originally Posted by Epiphone
and also, currently this only returns the line of text which the match appears on. I need to get the next 2 lines also. What is that code? thanks
Can you please tell your exact requirement?
# 30  
Old 07-02-2007
I want to run a script which filters out the contents of the file by:
Date
Time
String

But I want it to also filter out time ranges!

Here is log file:

2007/05/25 15:51:36.958117 sdfsdfsdf sdfdsfds-sdfds Trace name: STRINGA
sdfsdfsdfsdfsdfsdfsdfsdfsdff
sdfsdfsdfsdfsdfsdfsdfsdfsdf
dsfdsfsdfsdfsdfsdfsdfsdfsdfsdf

2007/05/25 15:56:06.670401 sdfsdfsdf sdfdsfds-sdfds Trace name: STRINGB
sdfsdfsdfsdfsdfsdfsdfsdfsdff
sdfsdfsdfsdfsdfsdfsdfsdfsdf
dsfdsfsdfsdfsdfsdfsdfsdfsdfsdf

2007/05/25 15:56:06.670683 sdfsdfsdf sdfdsfds-sdfds Trace name: STRINGB
sdfsdfsdfsdfsdfsdfsdfsdfsdff
sdfsdfsdfsdfsdfsdfsdfsdfsdf
dsfdsfsdfsdfsdfsdfsdfsdfsdfsdf

2007/05/25 16:07:12.145404 sdfsdfsdf sdfsdfsdf sdfdsfds-sdfdsfdsf Trace name: STRINGA
sdfsdfsdfsdfsdfsdfsdfsdfsdff
sdfsdfsdfsdfsdfsdfsdfsdfsdf
dsfdsfsdfsdfsdfsdfsdfsdfsdfsdf

2007/05/25 16:07:12.145701 sdfsdfsdf sdfsdfsdf sdfdsfds-sdfdsfdsf Trace name: STRINGA
sdfsdfsdfsdfsdfsdfsdfsdfsdff
sdfsdfsdfsdfsdfsdfsdfsdfsdf
dsfdsfsdfsdfsdfsdfsdfsdfsdfsdf

2007/04/14 16:07:12.145701 sdfsdfsdf sdfsdfsdf sdfdsfds-sdfdsfdsf Trace name: STRINGB
sdfsdfsdfsdfsdfsdfsdfsdfsdff
sdfsdfsdfsdfsdfsdfsdfsdfsdf
dsfdsfsdfsdfsdfsdfsdfsdfsdfsdf

So I want only to see text from 2007/05/25 16:05 - 2007/05/25 16:08 for STRINGB

Therefore I should only see the last entry in the log above. But I want to see all 4 lines.

Last edited by Epiphone; 07-02-2007 at 08:10 AM..
# 31  
Old 07-02-2007
Quote:
Originally Posted by Epiphone
I want to run a script which filters out the contents of the file by:
Date
Time
String

But I want it to also filter out time ranges!

Here is log file:

2007/05/25 15:51:36.958117 sdfsdfsdf sdfdsfds-sdfds Trace name: STRINGA
sdfsdfsdfsdfsdfsdfsdfsdfsdff
sdfsdfsdfsdfsdfsdfsdfsdfsdf
dsfdsfsdfsdfsdfsdfsdfsdfsdfsdf

2007/05/25 15:56:06.670401 sdfsdfsdf sdfdsfds-sdfds Trace name: STRINGB
sdfsdfsdfsdfsdfsdfsdfsdfsdff
sdfsdfsdfsdfsdfsdfsdfsdfsdf
dsfdsfsdfsdfsdfsdfsdfsdfsdfsdf

2007/05/25 15:56:06.670683 sdfsdfsdf sdfdsfds-sdfds Trace name: STRINGB
sdfsdfsdfsdfsdfsdfsdfsdfsdff
sdfsdfsdfsdfsdfsdfsdfsdfsdf
dsfdsfsdfsdfsdfsdfsdfsdfsdfsdf

2007/05/25 16:07:12.145404 sdfsdfsdf sdfsdfsdf sdfdsfds-sdfdsfdsf Trace name: STRINGA
sdfsdfsdfsdfsdfsdfsdfsdfsdff
sdfsdfsdfsdfsdfsdfsdfsdfsdf
dsfdsfsdfsdfsdfsdfsdfsdfsdfsdf

2007/05/25 16:07:12.145701 sdfsdfsdf sdfsdfsdf sdfdsfds-sdfdsfdsf Trace name: STRINGA
sdfsdfsdfsdfsdfsdfsdfsdfsdff
sdfsdfsdfsdfsdfsdfsdfsdfsdf
dsfdsfsdfsdfsdfsdfsdfsdfsdfsdf

2007/04/14 16:07:12.145701 sdfsdfsdf sdfsdfsdf sdfdsfds-sdfdsfdsf Trace name: STRINGB
sdfsdfsdfsdfsdfsdfsdfsdfsdff
sdfsdfsdfsdfsdfsdfsdfsdfsdf
dsfdsfsdfsdfsdfsdfsdfsdfsdfsdf

So I want only to see text from 2007/05/25 16:05 - 2007/05/25 16:08 for STRINGB

Therefore I should only see the last entry in the log above. But I want to see all 4 lines.
Code:
while( <FILE> )
{
        if ( $_ ge "2007/05/25 16:05" && $_ le "2007/05/25 16:08" && /STRINGB/ ) {
                $results = $results . $_;
                $flag=3;
        }
        elsif ( $flag-- > 0 ) { $results = $results . $_; }
}

# 32  
Old 07-02-2007
yeah, seems to be working, great.

Your a credit to this forum anbu23, thanks.
# 33  
Old 07-10-2007
back again

Code:
while( <FILE> )
{
        if ( $_ ge "2007/05/25 16:05" && $_ le "2007/05/25 16:08" && /STRINGB/ ) {
                $results = $results . $_;
                $flag=3;
        }
        elsif ( $flag-- > 0 ) { $results = $results . $_; }
}

In the code above I want to add a 2nd search string, STRINGC. So I want to search for both strings if I give arguments for both, but if I dont give an argument for the 2nd string (STRINGC) then I only search for STRINGB.
# 34  
Old 07-10-2007
You need to use 'ge' and 'le' instead of '>=' and '<=', respectively, since you are doing string (not numerical) comparisons.
# 35  
Old 07-11-2007
I mean if I add STRINGC

Code:
if ( $_ ge "2007/05/25 16:05" && $_ le "2007/05/25 16:08" && /STRINGC/ && /STRINGB/ ) {

It doesnt work, what am i doing wrong?
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. What is on Your Mind?

Grep file containing dates

How to grep a file containing dates to only last 30 days then move to another folder (7 Replies)
Discussion started by: kmarcus
7 Replies

2. Shell Programming and Scripting

Grepping only dates from a log file

Hi All, I have a log file where every line contains a date and some other data, i want to grep only the date from every line to a different file. Please help how to get this. Thanks in advance !! (25 Replies)
Discussion started by: nanz143
25 Replies

3. Shell Programming and Scripting

Grep search for value between dates

Hi I am new to scripting and I have a requirement to grep a value from large numbers of xml files and see if this value exist then I want to check the date and see if it falls between two dates (eg: today and feb 17), then print the name of file. the values in xml file is as follow... (7 Replies)
Discussion started by: mmsiddig
7 Replies

4. Shell Programming and Scripting

Script to read a log file and run 2nd script if the dates match

# cat /tmp/checkdate.log SQL*Plus: Release 11.2.0.1.0 Production on Mon Sep 17 22:49:00 2012 Copyright (c) 1982, 2009, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production FIRST_TIME NEXT_TIME... (1 Reply)
Discussion started by: SarwalR
1 Replies

5. Shell Programming and Scripting

Shell Script to grep Job File name and Log File name from crontab -l

Hello, I am new to shell scripting. I need to write a shell script where i can grep the name of file ie. .sh file and log file from crontab -l. #51 18 * * * /home/oracle/refresh/refresh_ug634.sh > /home/oracle/refresh/refresh_ug634.sh.log 2>&1 #40 17 * * * /home/oracle/refresh/refresh_ux634.sh... (1 Reply)
Discussion started by: guptra
1 Replies

6. UNIX for Dummies Questions & Answers

How to write the dates between 2 dates into a file

Hi All, I am trying to print the dates that falls between 2 date variables into a file. Here is the example. $BUS_DATE =20120616 $SUB_DATE=20120613 Output to file abc.txt should be : 20120613,20120614,120120615,20120616 Can you pls help me accomplish this in LINUX. Thanks... (5 Replies)
Discussion started by: dsfreddie
5 Replies

7. Shell Programming and Scripting

How to processing the log file within certain dates based on the file name

Hi I am working on the script parsing specific message "TEST" from multiple file. The log file name looks like: N3.2009-11-26-03-05-02.console.log.tar.gz N4.2009-11-29-00-25-03.console.log.tar.gz N6.2009-12-01-10-05-02.console.log.tar.gz I am using the following command: zgrep -a --text... (1 Reply)
Discussion started by: shyork2001
1 Replies

8. Shell Programming and Scripting

find log file between two dates

Dear All, Please can you help me to crack this query? If the log files for the task above all had a naming convention of myoutput_YearMonthDay.log (i.e. myoutput_20060215) How would you find only those log files created between the 10th and the 20th of each month going back the last 365 days.... (1 Reply)
Discussion started by: justin_mca
1 Replies

9. Shell Programming and Scripting

grep a log file to filter previous dates

Hi, I have problem of filtering a log file from my perl script. #cat /data/pinpe.csv_20070731 | nawk -v FS=, '{print $1','$18','$22','$26}' | grep -w 100 | grep -w 1 | nawk '{print $4}' Below is the output: 2009-06-16 2009-01-29 2009-06-02 2008-03-05 2007-08-05 2007-09-24... (5 Replies)
Discussion started by: pinpe
5 Replies

10. Shell Programming and Scripting

help searching log file with dates

Im tyring to create a script that will show me any lines in a file with todays date and yesterdays, the date format in the file is as follows ----- amqxfdcx.c : 728 -------------------------------------------------------- 07/12/05 09:53:20 AMQ6109: An internal WebSphere MQ error has... (3 Replies)
Discussion started by: csaunders
3 Replies
Login or Register to Ask a Question