grep (Globally search a Regular Expression and Print)是一种强大的文本搜索工具,它能 使用正则表达式 搜索文本,并把匹配的行打印出来
在文件中搜索特定模式的行:
grep -options pattern filenames
-E在grep中使用正则表达式的扩展功能,也可以直接用egrep命令
-o只输出文件中匹配到的部分
-v pattern忽略含有pattern的行
-c统计匹配到的行数
-n打印匹配字符串的行号
-b打印匹配的字符串的字符数或偏移量
-l搜索多个文件,并找出匹配模式位于哪个文件中
-i忽略大小写
-q只匹配,不打印,返回0表示运行成功,非0表示失败
-Z null,以\0作为文件的结束符,而不是文件名中的空格。
-w pattern精确匹配。
匹配多个样式(或运算):
grep -e pattern1 -e pattern2 filenames
grep -E “pattern1|pattern2”
从模式文件中匹配多个样式:
grep -f pattern-file filenames
统计有多少匹配项:
egrep -o "pattern" filenames | wc -l
阅读源码时需要递归搜索:
grep pattern dir -nR/-nr
在输出行中着重标记匹配到的单词:
grep -options pattern filenames --color=auto
在目录中递归搜索所有的.c和.cpp文件中的匹配模式:
grep pattern dir -r --include *.{c,cpp}
在目录中递归搜索所有的README文件除外的所有文件的匹配模式:
grep pattern dir -r --exclude "README"
排除目录用--exclude-dir
打印匹配行之前的n行:
grep pattern filename -A n
打印匹配行之后的n行:
grep pattern filename -B n
打印匹配行之后和之前的n行:
grep pattern filename -C n