twan163
twan163

Reputation: 295

grep all lines for a specific date in log-files

I need to grep all lines for "yesterday" in /var/log/messages. When I use following snippet, I get zero results due to the fact that the dates are in the format "Jun 9". (It doesn't show here, but in the log file, the days of the month are padded with an extra space when smaller than 10).

cat /var/log/messages | grep `date --date="yesterday" +%b\ %e`

When I enter

$ date --date="yesterday" +%b\ %e

on the commandline, it returns yesterday's date, with padding.

But when I combine it with grep and the backticks, the extra padding gets suppressed, which gives me zero results.

What do I need to change so that the "date" gets evaluated with extra padding?

Upvotes: 2

Views: 15177

Answers (1)

John Lawrence
John Lawrence

Reputation: 2923

You should be able to fix this by putting quotes around the backticks:

cat /var/log/messages | grep "`date --date="yesterday" +%b\ %e`"

Upvotes: 5

Related Questions