【发布时间】:2016-09-07 14:45:44
【问题描述】:
如果我有两个字符串,例如“class”和“btn”,什么是 linux 命令可以让我在整个目录中搜索这两个字符串。
更具体地说,假设我的目录包含几个文件夹和一堆 .php 文件。我的目标是能够在这些 .php 文件中进行搜索,以便它只打印出一行中包含“class”和“btn”的文件。希望这能更好地说明问题。
谢谢,
【问题讨论】:
标签: linux
如果我有两个字符串,例如“class”和“btn”,什么是 linux 命令可以让我在整个目录中搜索这两个字符串。
更具体地说,假设我的目录包含几个文件夹和一堆 .php 文件。我的目标是能够在这些 .php 文件中进行搜索,以便它只打印出一行中包含“class”和“btn”的文件。希望这能更好地说明问题。
谢谢,
【问题讨论】:
标签: linux
我通常使用以下内容在我的源代码中搜索字符串。它搜索字符串并显示该文本出现的确切行号。对于在源代码文件中搜索字符串非常有帮助。您始终可以将输出通过管道传输到另一个 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", []);
【讨论】:
grep -r /path/to/directory 'class|btn'
grep 用于在文件中搜索字符串。使用-r 标志,它递归地搜索目录中的所有文件。
【讨论】:
或者,或者使用find 命令来“识别”要搜索的文件,而不是在递归模式下使用grep:
find /path/to/your/directory -type f -exec grep "text_to_search" {} \+;
【讨论】: