7

如果我这样做,find . -mmin -1我会得到最后一分钟修改过的“myfile”。

但是当我想通过执行搜索该文件中的特定字符串时

grep 'myString' myfile -mmin -1 

我得到错误invalid max count

我也试过

find . -name "myfile" -exec grep 'myString' myfile -mmin -5

我得到错误find: missing argument to -exec

所以我的问题是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.

建议?谢谢你的建议。

4

4 回答 4

9

grep 某事 *

错误:

grep:最大计数无效

验证您在当前目录中的名称中是否有一个带有前导短划线的文件。文件名可能被用作一个选项。

例如:

grep something // okay

touch -- -mmin

**grep 的东西 **

grep:最大计数无效

解决方法:

**grep——某事**

来自man getopt

参数后面的每个参数--始终被解释为非选项参数。

于 2011-11-18T13:46:03.067 回答
4

据我所知,Grep 没有 mmin 参数。它确实有一个带有数字参数的 -m 参数。grep 'myString' myfile -m3将在包含 myString 的 3 行之后停止。因此,错误消息意味着 'min' in-mmin不是有效的最大计数。

于 2011-03-02T07:19:51.183 回答
0

当忘记在 grep 字符串中转义破折号时,我也遇到过这种情况:

例子:

history | grep '-m yum'
grep: invalid max count

history | grep '\-m yum'
...
sudo ansible workstations -m yum --fork=20 -a 'name=zsh state=latest'
于 2022-01-28T17:09:11.560 回答
0

简单的答案是将grep命令和find命令组合成单个命令:

grep "search-patten" $(find . -mmin -5)

此命令将在当前目录下小于 5 分钟的所有修改文件中查找所有与“search-patten”匹配的行。

grep "search-patten" $(find . -mmin +5)

此命令将在当前目录下 5 分钟前的所有修改文件中查找与“search-patten”匹配的所有行。

于 2022-01-29T14:16:21.223 回答