[英]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.