Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux:在所有文件中搜索特定单词_Linux_Grep - Fatal编程技术网

Linux:在所有文件中搜索特定单词

Linux:在所有文件中搜索特定单词,linux,grep,Linux,Grep,我正在使用Ubuntu12。 我试图在我的Ubuntu机器主目录中搜索单词“SymbolSetThree” 为此我用了 grep "SymbolSetThree" /home 它只显示为grep:/home:是一个目录 请告诉我如何在Linux中的所有文件中搜索特定单词??? 这就是我试过的 sai@sai-Aspire-4720Z:/$ grep "SymbolSetThree" /home grep: /home: Is a directory 使用`查找: find /home -

我正在使用Ubuntu12。 我试图在我的Ubuntu机器主目录中搜索单词“SymbolSetThree”

为此我用了

 grep "SymbolSetThree" /home
它只显示为grep:/home:是一个目录

请告诉我如何在Linux中的所有文件中搜索特定单词???

这就是我试过的

sai@sai-Aspire-4720Z:/$  grep "SymbolSetThree" /home
grep: /home: Is a directory
使用`查找:

find /home -type f | xargs grep SymbolSetThree

通过使用
-exec
参数来
查找
(而不是
xargs
)也可以获得相同的结果。

您很接近,只需使用
-r
开关即可使命令正常工作

 grep -r "SymbolSetThree" /home

这就可以了。

对于这类任务,我非常喜欢ack-grep,它是面向程序员的(只支持源文件.py.rb.c.sh),但它使用-a查找所有类型的文件

ack-grep -a "SymbolSetThree"

程序的名称是“ack”,而不是“ack grep”,尽管由于命名冲突,有许多打包程序称之为“ack grep”。在Ubuntu中,由于与另一个ack(汉字代码转换器)的名称冲突,OP运行的是ack grep。我总是为ack定义一个别名以提高可用性。嘿,刚刚做了一个ack版本,看起来你是作者,谢谢@AndyLester,这是一个非常好的工具。这是我在Linux中工作时感到困惑的地方。没有用于放置参数/选项/位置(路径)的标准格式。很难记住什么时候位置在选项之前,等等。虽然我有时也会使用这个find命令,但是当grep-r在一个步骤中实现了同样的事情,并且不太冗长,并且是用来搜索文件时,为什么要使用这个命令呢?