如何在linux中的目录的整个内容中搜索单词

需要在整个内容中搜索某些内容

我在尝试:

find . | xargs grep word

我收到错误:

xargs: unterminated quote

怎么做到这一点?

解决方法:

xargs期望以其他命令产生的格式输入,因此难以有效使用.这里出现的问题是你有一个文件,其名称必须在输入xargs时引用(可能包含’).

如果grep支持-r或-R选项进行递归搜索,请使用它.

grep -r word .

否则,请使用find的-exec primary.除了没有文件名约束之外,这是实现与xargs相同效果的常用方法.合理的最新版本的find允许您在一次调用辅助命令时对多个文件进行分组.将/ dev / null传递给grep可确保它在每个匹配前显示文件名,即使它恰好在单个文件上调用.

find . -type f -exec grep word /dev/null {} +

较旧版本的find(在较旧的系统或OpenBSD上,或简化的实用程序,如BusyBox)只能一次调用一个文件上的辅助命令.

find . -type f -exec grep word /dev/null {} \;

某些版本的find和xargs具有允许它们正确通信的扩展,使用空字符分隔文件名,因此不需要引用.目前,只有OpenBSD具有此功能而没有-exec … {}.

find . -type f -print0 | xargs -0 grep word /dev/null
上一篇:linux – 使用xargs –max-args –replace与默认分隔符的问题


下一篇:根据进程文件id查看所有进程信息