Reputation: 5118
If I do a find . -mmin -1
I get 'myfile' which was modified in last one minute.
But when I want to search a particular string in that file by doing
grep 'myString' myfile -mmin -1
I get the error invalid max count
I also tried
find . -name "myfile" -exec grep 'myString' myfile -mmin -5
I get the error find: missing argument to -exec
So my question is How do I grep or cat only the changes within a file which happened in last 5 mins. Now that I know the file name which was modified during that period.
Suggestions? Thanks in adv.
Upvotes: 7
Views: 38203
Reputation: 4900
Easy answer is to combine grep
command and find
command into single command:
grep "search-patten" $(find . -mmin -5)
This command will find all matched lines to "search-patten" in all modified files under current directory younger than 5 minutes ago.
grep "search-patten" $(find . -mmin +5)
This command will find all matched lines to "search-patten" in all modified files under current directory older than 5 minutes ago.
Upvotes: 0
Reputation: 321
I've also encountered this when forgetting to escape a dash in the grep string:
Example:
history | grep '-m yum'
grep: invalid max count
history | grep '\-m yum'
...
sudo ansible workstations -m yum --fork=20 -a 'name=zsh state=latest'
Upvotes: 0
Reputation: 91
grep something *
Error:
grep: invalid max count
Verify that you have a file with a leading dash in the name in the current directory. The file name might be taken for an option.
For example:
grep something // okay
touch -- -mmin
**grep something **
grep: invalid max count
Workaround:
**grep -- something **
From man getopt
:
Each parameter after a
--
parameter is always interpreted as a non-option parameter.
Upvotes: 9
Reputation: 2351
Grep doesn't have an mmin argument as far as I can see. It does have a -m argument with a number parameter. grep 'myString' myfile -m3
will stop after 3 lines containing myString. So, the error message means that 'min' in -mmin
is not a valid maximum count.
Upvotes: 4