Linux查找目录下包含有某字符串的所有文件

有时我们需要在一堆的日志目录里面找到某些关键的日志信息,今天我们来看看如何快速找到。

如果我们想在当前目录下查找所有包含”phpernote”字符串的文件,可以这样输入命令:

1
grep -rn "phpernote" *

即使当前目录下面有一对的文件 也会递归每个文件查找

参数含义解释:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
*   表示当前目录所有文件,也可以是某个文件名,可省略

-r 是递归查找

-n 是显示行号

-R 查找所有文件包含子目录

-i 忽略大小写,默认情况区分大小写

-l 只列出匹配的文件名

-L 列出不匹配的文件名

-w 只匹配整个单词,而不是字符串的一部分(如匹配 'magic',而不是 'magical'

-C number 匹配的上下文分别显示[number]行

一些实用的查找方式:

1
2
3
4
5
# 查找当前目录下包含了phpernote字符或者包含了php字符的文件
grep "phpernote" | "php" *

# 查找当前目录下既包含phpernote字符又包含php字符的文件
grep "phpernote" | grep "php" *

还可以通过xargs配合grep查找文件列表,例如:

1
find -type f -name '*.php'|xargs grep 'phpernote'

推荐阅读:

grep用法详解:grep与正则表达式

知识就是财富
如果您觉得文章对您有帮助, 欢迎请我喝杯水!