grep - 递归grep仅匹配模式的目录?
问题描述
我试图弄清楚如何通过仅搜索与字符串匹配的子目录中的文件来加速递归 grep。
例子:
/foo/bar/baz/mylogs/somelog.log
/foo/bar/notme.log
/cat/dog/mylogs/anotherlog.log
我只需要 grep 下的*.log
文件*/mylogs/*
我可以使用以下内容找到所有日志文件...
egrep -h -R --include \*.log '(pattherns|to|match)'
但这并不...
egrep -h -R --include \/mylogs/\*.log '(pattherns|to|match)'
如何缩小包含路径?
解决方案
一种选择是使用find
查找与该名称匹配的任何目录,并利用其exec
标志egrep
在找到的内容上运行。以下示例递归地egrep
遍历模式 'foo' 的匹配目录:
find . -type d -name mylogs -exec egrep -hR --include=\*.log foo {} +
+
后缀意味着将find
尽可能多的结果提供给单个egrep
进程。
推荐阅读
- c# - 试图将值添加到复选框中
- axios - 路线帖子在laravel 7上没有响应
- python - pyinstaller 在隐藏导入中添加嵌套模块不起作用
- reactjs - 错误:错误:无法从 `node_modules/react-native-pie/src/Pie.js` 解析模块`@react-native-community/art`
- python - 当我运行 Pygame 时,它什么也没做
- javascript - 将部分 JSON 对象合并到一个数组中
- php - get_avatar wordpress 图像从不显示但出现在控制台中
- c# - 匹配列表与列表
- python - How to upsert pandas DataFrame to PostgreSQL table?
- html - 如何垂直居中对齐内联块元素