这应该是非常简单的,但我没有搞清楚。 我在Linux下有一个大于4GB的代码库。 在构build过程中会生成一些头文件和xml文件(使用gnu make)。 如果重要的话,头文件是基于xml文件生成的。
我想在一个时间实例(它是我的开始编译时间)之后最后修改的头文件中search一个关键字,以及类似的xml文件,但单独的grep查询。
如果我在所有可能的头文件或xml文件上运行它,则需要很长时间。 只有那些自动生成的。 此外,search必须是recursion的,因为有很多目录和子目录。
要在当前目录及其子目录中比some_file
更新的所有文件中查找'pattern'
:
find -newer some_file -type f -exec grep 'pattern' {} +
您可以直接以date -d
格式指定时间戳,并使用其他find
测试,例如-name
, -mmin
。
如果find
太慢,文件列表也可能由您的构建系统生成。
可以使用更多特定的工具,如ack
, etags
, GCCSense
代替grep
。
你可以使用find
命令:
find . -mtime 0 -type f
打印当前目录( .
)中和过去24小时内修改过的所有文件( -type f
)的列表( -mtime 0
将是48h,2将是72h,…)。 尝试
grep "pattern" $(find . -mtime 0 -type f)
用这个。 因为如果find
没有返回一个文件,那么grep
会一直等待输入停止脚本。
find . -mtime 0 -type f | xargs grep "pattern"