grep命令,文本搜索¶
最后更新:2021-07-31
grep(global search regular expression\(RE\) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。
grep [options]
选项¶
[options]主要参数:¶
-a
不要忽略二进制数据。-A<显示列数>
除了显示符合范本样式的那一行之外,并显示该行之后的内容。-b
在显示符合范本样式的那一行之外,并显示该行之前的内容。-c
计算符合范本样式的列数。-C<显示列数>或-<显示列数>
除了显示符合范本样式的那一列之外,并显示该列之前后的内容。-d<进行动作>
当指定要查找的是目录而非文件时,必须使用这项参数,否则grep命令将回报信息并停止动作。-e<范本样式>
指定字符串作为查找文件内容的范本样式。 --E
将范本样式为延伸的普通表示法来使用,意味着使用能使用扩展正则表达式。-f<范本文件>
指定范本文件,其内容有一个或多个范本样式,让grep查找符合范本条件的文件内容,格式为每一列的范本样式。-F
将范本样式视为固定字符串的列表。-G
将范本样式视为普通的表示法来使用。-h
在显示符合范本样式的那一列之前,不标示该列所属的文件名称。-H
在显示符合范本样式的那一列之前,标示该列的文件名称。-i
胡列字符大小写的差别。-l
列出文件内容符合指定的范本样式的文件名称。-L
列出文件内容不符合指定的范本样式的文件名称。-n
在显示符合范本样式的那一列之前,标示出该列的编号。-q
不显示任何信息。-R/-r
此参数的效果和指定“-d recurse”参数相同。-s
不显示错误信息。-v
反转查找。-w
只显示全字符合的列。-x
只显示全列符合的列。-y
此参数效果跟“-i”相同。-o
只输出文件中匹配到的部分。
pattern正则表达式主要参数:¶
\
: 忽略正则表达式中特殊字符的原有含义。^
:匹配正则表达式的开始行。$
: 匹配正则表达式的结束行。\<
:从匹配正则表达 式的行开始。\>
:到匹配正则表达式的行结束。[ ]
:单个字符,如[A]即A符合要求 。[ - ]
:范围,如[A-Z],即A、B、C一直到Z都符合要求 。.
:所有的单个字符。*
:所有字符,长度可以为0。
grep命令常见简单用法¶
1. 查看进程信息¶
Text Only | |
---|---|
2. 搜索文件中符合条件的字符串(定位问题很有用,提高效率)¶
Text Only | |
---|---|
找出文件中含有字符串的行。
Text Only | |
---|---|
找出文件中含有字符串的行,并且显示行号。
3. 匹配的上下文分别显示[number]行¶
Text Only | |
---|---|
C 匹配文件中的字符串,显示字符串所在行的前后n行, C--current B 匹配文件中的字符串,显示字符串所在行的前面n行, B--before A 匹配文件中的字符串,显示字符串所在行的后面n行, A--after
4. 全字匹配¶
Text Only | |
---|---|
5. 匹配多个字符串¶
Text Only | |
---|---|
6. 其他实例¶
\(1\)多个文件查询
grep "sort" *.doc
#见文件名的匹配
\(2\)行匹配:输出匹配行的计数
grep -c "48" data.doc
#输出文档中含有48字符的行数
\(3\)显示匹配行和行数
grep -n "48" data.doc
#显示所有匹配48的行和行号
\(4\)显示非匹配的行
grep -vn "48" data.doc
#输出所有不包含48的行
\(4\)显示非匹配的行
grep -vn "48" data.doc
#输出所有不包含48的行
\(5\)大小写敏感
grep -i "ab" data.doc
#输出所有含有ab或Ab的字符串的行