【问题标题】:Finding multiple strings in directory using linux commends使用linux命令在目录中查找多个字符串
【发布时间】:2016-09-07 14:45:44
【问题描述】:

如果我有两个字符串,例如“class”和“btn”,什么是 linux 命令可以让我在整个目录中搜索这两个字符串。

更具体地说,假设我的目录包含几个文件夹和一堆 .php 文件。我的目标是能够在这些 .php 文件中进行搜索,以便它只打印出一行中包含“class”和“btn”的文件。希望这能更好地说明问题。

谢谢,

【问题讨论】:

标签: linux


【解决方案1】:

我通常使用以下内容在我的源代码中搜索字符串。它搜索字符串并显示该文本出现的确切行号。对于在源代码文件中搜索字符串非常有帮助。您始终可以将输出通过管道传输到另一个 grep 并过滤输出。

grep -rn "text_to_search" directory_name/

示例:

$ grep -rn "angular" menuapp
$ grep -rn "angular" menuapp | grep some_other_string 

输出将是:

menuapp/public/javascripts/angular.min.js:251://# sourceMappingURL=angular.min.js.map
menuapp/public/javascripts/app.js:1:var app = angular.module("menuApp", []);

【讨论】:

    【解决方案2】:
    grep -r /path/to/directory 'class|btn'
    

    grep 用于在文件中搜索字符串。使用-r 标志,它递归地搜索目录中的所有文件。

    【讨论】:

      【解决方案3】:

      或者,或者使用find 命令来“识别”要搜索的文件,而不是在递归模式下使用grep

      find /path/to/your/directory -type f -exec grep "text_to_search" {} \+;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-12-14
        • 1970-01-01
        • 2023-02-16
        • 2020-07-25
        • 2012-12-04
        • 2023-04-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多