首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >带有此处文档的grep -f

带有此处文档的grep -f
EN

Stack Overflow用户
提问于 2017-09-06 18:55:25
回答 1查看 784关注 0票数 1

在这里,文档避免创建中间的一次性使用文件.我希望在获得20个可能的文件的完整路径时(不使用find -o语法),可以利用这一点。我期望以下几点能够发挥作用:

代码语言:javascript
复制
find | grep -f <<EOF
Controller.java
Main.java
Config.java
EOF

但我明白:

代码语言:javascript
复制
grep: option requires an argument -- f

我是不是误解了这里的文件是怎么工作的?或者grep -f没有很好地处理文件描述符?

我也对使用find的解决方案开放,这些解决方案可以获取-name值的列表,但我不想输入-o 20次。

最佳替代办法:

代码语言:javascript
复制
cat <<EOF |  xargs --delimiter '\n' --max-args=1 -I% find -iname "*%*"
Controller.java
Main.java
Config.java
EOF

这在智力上是不令人满意的,因为对于每个搜索模式,您都要在整个文件层次结构上运行一次find,对于大型目录层次结构来说,这并不能很好地扩展。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-06 22:10:16

如果您使用的是/proc (如linux)系统,请尝试:

代码语言:javascript
复制
#!/bin/sh

find . | grep -f /proc/self/fd/3 3<< EOF
Controller.java
Main.java
Config.java
EOF

或者,如果您的shell支持进程替换(Bourne Shell不支持):

代码语言:javascript
复制
#!/bin/bash

find . | grep -f <( cat << EOF
Controller.java
Main.java
Config.java
EOF
)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46082466

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档