grep:Global searchRegularExpression andPrint put the line,全局搜索正则表达式并把行打印出来。一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。
1、功能
使用正则表达式搜索文本,并把匹配的行打印出来
2、语法
grep [可选项] [--color=auto] '搜索的字符串' filename...
3、常用可选项
--color=auto:打印输出的时候将匹配的关键词部分加上颜色显示
-n:给输出内容加上行号
-v:反向选择,即打印出没有‘搜索的字符串’内容的那一行
-c:计算找到“搜索的字符串”的次数
-i:不区分大小写
-A:除了显示符合模式的行,并显示该行之后的内容。
-B:除了显示符合模式的行,并显示该行之前的内容。
-C:除了显示符合模式的行,并显示该行之前和之后的内容。具体请看下面的例子。
'要搜索的字符串'为使用正则表达式的模式pattern
常见用法:
grep -i pattern files #不区分大小写的搜索。默认情况下Linux系统区分大小写。
grep -l pattern files #只列出匹配的文件名
grep -n pattern files #显示行号
grep -c pattern files #显示匹配的行数
grep pattern1 | pattern2 files #显示匹配pattern1或pattern2的行
grep pattern1 files | grep pattern2 #显示既匹配pattern1又匹配pattern2的行
4、示例
1)grep --color=auto 'test' d* #显示所有以d开头的文件中包含test的行,test显示有颜色
2)grep '[A-z]\{5\}' d.txt #显示所有包含至少5个连续的由字母组成的字符串的行
3)grep -c 'test' d.txt #输出文档中含有test字符串的行数
4)grep -n 'test' d.txt #显示所有含有test字符串的行及其行号
5)grep -vn 'test' d.txt #显示所有不包括test的行及其行号
6)grep -i '^h' d.txt #忽略匹配样式中的字符大小写,显示所有由h或者H开头的行
7)seq 10 | grep '5' -A 3 #显示匹配某个结果及之后的3行
8)seq 10 | grep '5' -B 3 #显示某个匹配的结果及之前的3行
9)seq 10 | grep '5' -C 3 #显示某个匹配的结果及其前3行和后3行
10)grep 'test' . -r -n #递归搜索当前目录