Linux查找含有特定字符串的文件

Linux查找含有特定字符串的文件命令为grep。以下为详细的使用方法

grep

Linux命令:

1
2
3
4
grep [OPTIONS] PATTERN [FILE...]
#实例:递归查找当前文件夹下所有含有test的文件,并显示行号
grep -rn "test" *

参数说明

1
2
3
4
5
6
7
8
9
10
11
-r 递归查找
-n 显示行号
-i 忽略大小写
-w 只匹配整个单词,而不是字符串的字部分(如pattern为"test", 不匹配"test1"或"atest")
-C num 显示匹配到的行上下n行
-l 只列出匹配成功的文件名
-L 列出不匹配的文件名
\< 标注单词的开头
\> 标注单词的结尾
^ 指匹配字符串在行首
$ 指匹配字符串在行尾

常用实例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#显示匹配pattern1或pattern2的行
grep pattern1 | pattern2 file
# 显示即匹配pattern1又匹配pattern2的行
grep pattern1 file | grep pattern2
#只匹配test或testA,不匹配Atest
grep "\<man" *
#只匹配test或Atest,不匹配testA
grep "man\>" *
#只匹配test 不匹配testA和Atest
grep "\<test\>" *
#匹配行首为test的行:
grep -rn "^test" *
#匹配行尾为test的行
grep -rn "test$" *