繁体   English   中英

如何搜索指定文件但您不知道路径文件夹是(在 bash 中)?

[英]How search specify file but you don't know in with path folder is (in bash)?

我可以在名为 values.yaml 的所有文件中找到内容

find . -name values.yaml | xargs grep -Re port -e target --color

但我只想在名为“stage”的文件夹中找到 values.yaml,所以 path/bla/bla/stage/values.yaml

我有我最好的方法

find ./*/*/*/stage/ -name values.yaml | xargs grep -Re port -e target --color

问题是 stage 文件夹有时在 4 级,有人在 3 级或 5 级,等等......我想做类似的事情,但不起作用

find ./**/stage/ -name values.yaml | xargs grep -Re port -e target --color

不管舞台文件夹所在的级别,有什么方法可以做到吗?

非常感谢!

您可以告诉 find 匹配路径:

find -path '*/stage/*' -name values.yaml

使用-regex可能最简单:

find . -regex '.*/stage/.*values.yaml'

或者,更准确地说:

find -E . -regex '.*/stage/?.*/values\.yaml'

也许在这条路上?

find . -name stage -type d -exec find {} -name values.yaml \\; | xargs grep -Re port -e target --color

好的, caveat scriptor :一项测试效果很好,另一项却再也没有回来。 我怀疑坏的是特定于我笔记本电脑上的某些东西,但是请进行自己的测试,不要在太慢的东西上浪费时间。

那说:

shopt -s globstar
grep -Re port -e target --color ./**/stage/**/values.yaml

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM