bash,根据其内容在子目录中查找文件
我的目录结构如下:bash,根据其内容在子目录中查找文件,bash,Bash,我的目录结构如下: project1/config.ini project2/config.ini project3/config.ini 等等 我想找出包含特定字符串的config.ini文件,比如“database=a”我会使用grep: cd your_folder && grep -r "database=a" * 您可以使用grep: grep -r -l --include=config.ini database=a . 这将在中对数据库=a进行递归搜索(-r
project1/config.ini
project2/config.ini
project3/config.ini
等等我想找出包含特定字符串的config.ini文件,比如“database=a”我会使用grep:
cd your_folder && grep -r "database=a" *
您可以使用
grep
:
grep -r -l --include=config.ini database=a .
这将在
中对数据库=a
进行递归搜索(-r
),仅在名为config.ini
的文件中进行,并仅列出匹配的文件(-l
)。您可以使用find命令递归搜索所有文件中的字符串。例如:
find . -type f -name config.ini -exec grep -l "database=a" {} +
另一个简短的变体:
grep 'database=a' ./**/config.ini
# ^^-recursively search for all `config.ini` files
警告:仅当您没有zilion配置文件时有效-在其他情况下,您可能会得到一个太长的参数列表
错误
如果只需要文件名
grep -l 'database=a' ./**/config.ini
最简单的:
grep-ri“database=a”*/config.ini-1问题没有显示任何研究成果。在这种情况下,“研究成果”是几次不成功的尝试,这会使问题变得不那么清楚。我欣赏一些问题的简洁,在短时间内已经有了3个答案。这一点应该考虑在内。为什么这里需要
cd
?+1我喜欢这个答案,因为它完全符合POSIX规范,没有GNU扩展,也没有放弃性能或清晰度。(尽管如此,我还是会使用grep-F
)我认为您必须在bash中启用globstar
,才能使其正常工作,不是吗?