Visit Our UNIX and Linux User Community


Grep out only today's date


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Grep out only today's date
# 1  
Old 05-22-2012
Grep out only today's date

Hi,

I have some log files. I've been asked to grep out error messages that have happened ONLY today. (However, the logs keep messages a long time so they have error messages going back weeks)

They log details in these fields (order):

Month Day Time Server message

I can grep out the month and day. However, on some of the log files....there is 1 space between Month and Day, and on other log files there is 2 spaces.

SO my grep works with the 1 space, but not the 2 space log files.

this is my command:
Code:
cat file_name | cut -d " " -f 1,2

how do i get it to grep out the dates even with 2 spaces between the Month and Time?

Also, i would then like to email out if the date matches today's date....and if not, email out that nothing has changed or been logged today.

Moderator's Comments:
Mod Comment Video tutorial on how to use code tags in The UNIX and Linux Forums.
# 2  
Old 05-22-2012
Please do not leave people guessing. Show a representative sample of input, desired output, attempts at a solution and specify what OS and versions being used, or this thread will be closed.

That's also a useless use of cat award.
# 3  
Old 05-23-2012
ok...

excuse my ignorance, i'm a newbie to Unix.

i'm using Solaris

the output of the log files are:

Code:
May 19 20:34:33 server_name  Process: Error_message_timed_out

I can grep out the month and day. However, on some of the log files....there is 1 space between Month and Day, and on other log files there is 2 spaces.

SO my grep works with the 1 space, but not the 2 space log files.

this is my command:

Code:
cat file_name | cut -d " " -f 1,2

tho i'm guessing (after getting my award) Smilie that it should be

Code:
<file_name | cut -d " " -f 1,2

how do i get it to grep out the dates even with 2 spaces between the Month and Time?

Also, i would then like to email out if the date matches today's date....and if not, email out that nothing has changed or been logged today.

thanks for any responses

Last edited by methyl; 05-25-2012 at 11:35 AM.. Reason: code tags on sample data to preserve space characters
# 4  
Old 05-23-2012
How about..

Code:
$ mon=$(date +'%b')
$ day=$(date +'%d')
$ grep -E "$mon[ ]+$day" xx
May  23 20:34:33 server_name Process: Error_message_timed_out
May 23 20:34:33 server_name Process: Error_message_timed_out
May    23 20:34:33 server_name Process: Error_message_timed_out
$ 
$ 
$ 
$ cat xx
May  23 20:34:33 server_name Process: Error_message_timed_out
May 23 20:34:33 server_name Process: Error_message_timed_out
other msg
other msg
May    23 20:34:33 server_name Process: Error_message_timed_out
May 19 20:34:33 server_name Process: Error_message_timed_out
other msg
May 19 20:34:33 server_name Process: Error_message_timed_out
May 19 20:34:33 server_name Process: Error_message_timed_out
May 19 20:34:33 server_name Process: Error_message_timed_out
$

You have to deal with the other patterns if any. Just update the pattern.
This User Gave Thanks to clx For This Post:
# 5  
Old 05-25-2012
thanks

hi thanks for your help.

that seemed to do the trick! thanks very much!

Last edited by horhif; 05-25-2012 at 12:31 PM..
# 6  
Old 05-25-2012
first put the contents of file in a temp file with trimming the space then try to search the pattern, words will be separated by max 1 space.

Code:
cat file_name|tr -s " " >temp_file

This User Gave Thanks to donadarsh For This Post:
# 7  
Old 05-25-2012
Please also post sample data for a day of the month with a single-digit day.
Also sample data for every possible variation in the date field of the input record format.

Last edited by methyl; 05-25-2012 at 12:05 PM..

Previous Thread | Next Thread
Test Your Knowledge in Computers #889
Difficulty: Easy
In sed, the REGEX caret (^) matches the end of the line.
True or False?

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Compare Date to today's date in shell script

Hi Community! Following on from this code in another thread: #!/bin/bash file_string=`/bin/cat date.txt | /usr/bin/awk '{print $5,$4,$7,$6,$8}'` file_date=`/bin/date -d "$file_string"` file_epoch=`/bin/date -d "$file_string" +%s` now_epoch=`/bin/date +%s` if then #let... (2 Replies)
Discussion started by: Greenage
2 Replies

2. Shell Programming and Scripting

Check, if date is not today

hello, in a file exist entries in date format YYYYMMDD. i want to find out, if there are dates, which isn't today's date. file: date example text 20140714 <= not today's date 20140715 <= not today's date 20140716 <= today's date my idea is to use Perderabo's datecalc ... (2 Replies)
Discussion started by: bora99
2 Replies

3. Shell Programming and Scripting

Need to add a date column (today's date) in file

Hi I have file with number status and date1 and date1 field, want add a column today between column date1 and date2. file1.txt number status date1 date2 ===== ==== === ===== 34567 open 27/06/13 28/06/13 45678 open 27/06/13 28/06/13 43567 open 27/06/13 28/06/13 ... (1 Reply)
Discussion started by: vijay_rajni
1 Replies

4. Shell Programming and Scripting

UNIX date fuction - how to deduct days from today's date

Hi, One of my Unix scripts needs to look for files coming in on Fridays. This script runs on Mondays. $date +"%y%m%d" will give me today's date. How can I get previous Friday's date.. can I do "today's date minus 3 days" to get Friday's date? If not, then any other way?? Name of the files is... (4 Replies)
Discussion started by: juzz4fun
4 Replies

5. Shell Programming and Scripting

[Solved] Replace yesterday date with today's date except from the first line

Hello, I have a file like this: 2012112920121130 12345620121130msABowwiqiq 34477420121129amABamauee e7748420121130ehABeheheei in case the content of the file has the date of yesterday within the lines containing pattern AB this should be replaced by the current date. But if I use... (3 Replies)
Discussion started by: Lilu_CK
3 Replies

6. Shell Programming and Scripting

Today's date using Perl?

Easiest way to get it in the form of MM/DD/YY for Perl 5.8.8? Thanks (4 Replies)
Discussion started by: stevensw
4 Replies

7. UNIX for Dummies Questions & Answers

Shell Scripts - shows today’s date and time in a better format than ‘date’ (Uses positional paramete

Hello, I am trying to show today's date and time in a better format than ‘date' (Using positional parameters). I found a command mktime and am wondering if this is the best command to use or will this also show me the time elapse since 1/30/70? Any help would be greatly appreciated, Thanks... (3 Replies)
Discussion started by: citizencro
3 Replies

8. Shell Programming and Scripting

grep data lessthan today's date

Hello All, I have a flat file which contains a field with date information. I want to extract the data less than 2 days before without using 'if' Command. ie. Contents from a file like .. Ajay,12-jan-09 rajiv,10-jan-09 Nalini,02-jan-09 Sunil,14-jan-09 Pankaj,11-jan-09 As... (2 Replies)
Discussion started by: ssachins
2 Replies

9. Shell Programming and Scripting

Get date one month from today

I need to get the date one month in the future from today - or 30 days from today etc... I need this to work all year around - I cannot find anything to solve this issue in the search / faqs etc.... (5 Replies)
Discussion started by: frustrated1
5 Replies

10. UNIX for Dummies Questions & Answers

compare today's date with date in a file

Hi I am very new to scripting, Can someone show me how to (in unix shell script) compare the system's date with a date in a file. The requirement is to somehow open this file (which will only have a date in it) and compare it with today's date. If they are equal execute a procedure below but if... (4 Replies)
Discussion started by: siog
4 Replies

Featured Tech Videos