使用linux在目录中查找多个字符串表示

时间:2016-09-07 14:45:44

标签: linux

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

更具体地说,假设我的目录中包含一些带有.php文件的文件夹。我的目标是能够在这些.php文件中进行搜索,以便只打印出一行中包含“class”和“btn”的文件。希望这能更好地澄清事情。

谢谢,

3 个答案:

答案 0 :(得分:0)

grep -r /path/to/directory 'class|btn'

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

答案 1 :(得分:0)

我通常使用以下内容在源代码中搜索字符串。它搜索字符串并显示该文本出现的确切行号。在源代码文件中搜索字符串非常有用。您始终可以将输出传递给另一个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 :(得分:0)

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

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