这应该很简单,但我不知道它.我在Linux下拥有超过4GB的大型代码库.在构建期间生成一些头文件和xml文件(使用gnu make).如果重要,头文件是基于xml文件生成的.
我想在头文件中搜索一个关键字,该关键字是在时间实例(我的开始编译时间)之后最后修改的,以及类似的xml文件,但是单独的grep查询.
如果我在所有可能的头文件或xml文件上运行它,则需要花费很多时间.只有那些自动生成的.此外,搜索必须是递归的,因为有很多目录和子目录.
小智 13
您可以使用以下find命令:
find . -mtime 0 -type f
Run Code Online (Sandbox Code Playgroud)
打印-type f当前目录()中及其下的所有文件()的列表,这些文件.在过去24小时内被修改(-mtime 01为48h,2为72h,......).尝试
grep "pattern" $(find . -mtime 0 -type f)
Run Code Online (Sandbox Code Playgroud)
jfs*_*jfs 11
要'pattern'以some_file递归方式查找比当前目录及其子目录更新的所有文件:
find -newer some_file -type f -exec grep 'pattern' {} +
Run Code Online (Sandbox Code Playgroud)
您可以直接以date -d格式指定时间戳并使用其他find测试,例如-name,-mmin.
如果find速度太慢,您的构建系统也可能会生成文件列表.
如更具体的工具ack,etags,GCCSense可能被用来代替grep.