grep
是一种强大的文本搜索工具,它允许你使用正则表达式搜索文本,并把匹配的行打印出来。
基本语法:
grep [options] pattern [file...]
常用选项:
-i
:不区分大小写-v
:显示不包含匹配文本的所有行-n
:显示匹配行及其行号-r
或--recursive
:递归搜索指定目录及其子目录-l
:只列出包含匹配文本的文件名,不列出具体匹配的行-E
:使用扩展正则表达式-A NUM
:显示匹配行及其后面的NUM行-B NUM
:显示匹配行及其前面的NUM行-C NUM
:显示匹配行及其前后的NUM行
实例代码:
搜索文件中包含"error"的所有行:
grep "error" log.txt
不区分大小写搜索"error":
grep -i "error" log.txt
显示所有不包含"error"的行:
grep -v "error" log.txt
在多个文件中递归搜索"error":
grep -r "error" /path/to/directory
显示匹配行及其行号:
grep -n "error" log.txt
只列出包含匹配文本的文件名:
grep -l "error" *.txt
使用扩展正则表达式:
grep -E "^error|fail$" log.txt
显示匹配行及其后面的3行:
grep -A 3 "error" log.txt
显示匹配行及其前面的3行:
grep -B 3 "error" log.txt
显示匹配行及其前后的3行:
grep -C 3 "error" log.txt