I would like to count the number of files with yesterday's date in ls's output. I tried:

yday=$(date --date="yesterday" +"%b%Oe")
ls . -ltr | grep $yday | wc -l

The problem is that files have dates with two spaces between the month and days less than 10, for example:

Jan  6
   ^^---- two spaces

but my command creates a date with only one space:

yday=$(date --date="yesterday" +"%b%Oe")

Jan 6
   ^----- one space

How can I modify my command to solve this problem?

migrated from stackoverflow.com Jan 14 '16 at 20:07

This question came from our site for professional and enthusiast programmers.

  • 2
    You want the -mtime option to find. You'll need to calculate how long ago the day you want is and try something like "find pwd -mtime -1 -type f -print" You may refer to cyberciti.biz/faq/howto-finding-files-by-date – love Jan 7 '16 at 5:22

You can use:

yday=$(date --date="yesterday" +"%b %_d")

to produce the string you want (the underscore says to pad with spaces)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy