首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么没有通过管道发送到grep的搜索结果?

为什么没有通过管道发送到grep的搜索结果?
EN

Unix & Linux用户
提问于 2020-05-08 06:08:08
回答 1查看 27关注 0票数 0

我的当前目录:

代码语言:javascript
复制
pwd
/home/debian

-dig中搜索字符串/home/debian/mydoc/source

代码语言:javascript
复制
grep -lr -e "-dig" /home/debian/mydoc/source  
#get nothing as output

在我看来,通过管道发送给下一个grep的任何东西也将一无所获。

代码语言:javascript
复制
grep -lr -e "-dig" /home/debian/mydoc/source | xargs -d '\n' grep -lr -e "dns"
#my desired output:nothing ,none directory send to xargs

检查一下:

代码语言:javascript
复制
grep -lr -e "-dig" /home/debian/mydoc/source | xargs -d '\n' grep -lr -e "dns"
/home/debian/.cache/google-chrome/Default/Cache/b2b96208dbb4fdff_0
/home/debian/.cache/google-chrome/Default/Cache/33f7b9aaf4e3cb37_0
/home/debian/.cache/google-chrome/Default/Cache/b7b3cae8052a94ea_0

真正的搜索结果与我所期望的不一样,它与grep -lr -e "dns" /home/debian相同。

代码语言:javascript
复制
grep -lr -e "dns" /home/debian
/home/debian/.cache/google-chrome/Default/Cache/b2b96208dbb4fdff_0
/home/debian/.cache/google-chrome/Default/Cache/33f7b9aaf4e3cb37_0
/home/debian/.cache/google-chrome/Default/Cache/b7b3cae8052a94ea_0

请告诉我bash命令背后的原理--grep -lr -e "-dig" /home/debian/mydoc/source | xargs -d '\n' grep -lr -e "dns"

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2020-05-08 08:35:53

第一个代表肯定什么也不返回,所以第二个grep从xargs获得一个空的args列表。

第二个grep包括-r (递归)。

来自man grep页面:

-r,-递归::注意,如果没有提供文件操作数,grep将搜索工作目录。

因此,xargs运行的grep返回到/home/debian。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/585299

复制
相关文章

相似问题

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