Linux三剑客之grep

grep - 文本搜索工具

基本语法

grep [选项] 模式 [文件...]

常用选项

-i # 忽略大小写

-v # 反选,显示不匹配的行

-n # 显示行号

-c # 只显示匹配的行数

-r/-R # 递归搜索目录

-l # 只显示包含匹配项的文件名

-w # 全词匹配

-A n # 显示匹配行及后面n行

-B n # 显示匹配行及前面n行

-C n # 显示匹配行及前后各n行

-E # 使用扩展正则表达式(等价于egrep)

-F # 固定字符串匹配(不解析正则)

正则表达式

. # 任意单个字符

* # 前一个字符0次或多次

^ # 行首

$ # 行尾

\] # 字符集合 \[\^\] # 否定字符集合 \\{n,m\\} # 前一个字符出现n到m次 \\ # 转义特殊字符

常用示例

基本搜索

grep "error" log.txt

grep -i "warning" log.txt # 忽略大小写

grep -n "error" log.txt # 显示行号

grep -c "error" log.txt # 统计出现次数

递归搜索

grep -r "function_name" /path/to/code/

grep -rl "TODO" . # 查找包含TODO的文件

上下文显示

grep -A2 -B2 "关键错误" log.txt # 显示前后2行

正则表达式搜索

grep "^2026-" access.log # 以2023-开头的行

grep "\.html$" files.txt # 以.html结尾

grep "[0-9]\{3\}-[0-9]\{4\}" contacts.txt # 匹配电话号码

多个模式

grep -E "error|warning|fatal" log.txt # 匹配任意一个

grep -e "error" -e "warning" log.txt # 多个-e参数

管道组合

ps aux | grep "nginx" # 查找nginx进程

history | grep "git commit" # 查找历史命令

相关推荐
碧蓝幻想2 年前
正则表达式和grep命令
linux·正则表达式·grep·linux三剑客
碧蓝幻想2 年前
linux三剑客~sed命令的使用
linux·shell·sed命令·linux三剑客