查找特定日期范围内包含特定文本的文件

查找特定日期范围内包含特定文本的文件

我有一个包含大量文件的文件夹,我想提取在某个日期范围内创建的特定文本 XYZ 的文件。

我发现这可以在某个日期范围内搜索文件,但不确定如何将其与特定的文本过滤器结合起来。

find /MY_DIR/ -newermt "2017-12-01" ! -newermt "2021-01-31"

答案1

正确的方法是添加一个-exec选项。

find /MY_DIR/ -type f -newermt "2017-12-01" ! -newermt "2021-01-31" -exec grep -l XYZ {} +

还添加了-type f仅查找常规文件而不是目录、套接字等的选项。

答案2

如果您想在这些文件中查找一些文本,请使用grep 以下命令:

grep -i "XYZ" `find /MY_DIR/ -newermt "2017-12-01" ! -newermt "2021-01-31"`

-i开关使其不区分大小写。

grep该行开头的将在文件中查找文本。

相关内容