【问题标题】:Linux : Search for a particular word in all the filesLinux:在所有文件中搜索特定单词
【发布时间】:2013-01-21 18:31:54
【问题描述】:

我正在使用 Ubuntu 12 。 我正在尝试在我的 Ubuntu 机器主目录中搜索“SymbolSetThree”这个词。

为此我使用了

 grep "SymbolSetThree" /home

简单的显示为 grep: /home: 是目录

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

这是我尝试过的

sai@sai-Aspire-4720Z:/$  grep "SymbolSetThree" /home
grep: /home: Is a directory

【问题讨论】:

    标签: linux grep


    【解决方案1】:

    你已经很接近了,你只需要-r 开关就可以让你的命令正常工作。

     grep -r "SymbolSetThree" /home
    

    会成功的。

    【讨论】:

      【解决方案2】:

      使用`查找:

      find /home -type f | xargs grep SymbolSetThree
      

      使用find 的-exec 参数(而不是xargs)可以获得相同的结果。

      【讨论】:

      • 这是我在 Linux 中工作时感到困惑的地方。放置参数/选项/位置(路径)没有标准格式。很难记住位置何时出现在选项之前,等等。虽然我有时也使用这个 find 命令,但是当 grep -r 一步完成相同的事情并且不那么冗长并且用于搜索文件时,为什么要使用它?
      【解决方案3】:

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

      ack-grep -a "SymbolSetThree"
      

      【讨论】:

      • 程序的名称是“ack”,而不是“ack-grep”,虽然有很多打包者因为命名冲突而称它为“ack-grep”。 ack主页在betterthangrep.com
      • 好吧,在 Ubuntu 中,OP 正在运行的是 ack-grep,因为与另一个 ack(汉字代码转换器)的名称冲突。为了可用性,我总是定义一个别名返回 ack。
      • 嘿,刚刚做了一个 ack --version ,看来你是作者,谢谢@AndyLester,非常好的工具。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-12-06
      • 2021-03-17
      • 2021-04-01
      • 1970-01-01
      • 2017-08-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多