Linux grep 命令用法详解

Linux grep 命令用法详解

grep 是 Global Regular Expression Print 的缩写,是 Linux 中最常用的文本搜索 / 过滤工具,用于在文件、管道输入中查找指定字符串 / 正则表达式,并输出匹配的行。

一、基础语法

复制代码
grep [选项] "搜索关键词" 目标文件/路径

二、最常用核心选项(必记)

选项 作用
-i 忽略大小写搜索
-v 反向匹配 ,输出不包含关键词的行
-n 显示匹配行的行号
-c 只统计匹配行数,不输出具体内容
-l 只输出匹配到的文件名
-w 全词匹配(仅匹配完整单词,不匹配子串)
-r/-R 递归搜索目录下所有文件
-E 启用扩展正则表达式 (等价于 egrep)
-o 只输出匹配到的内容,而非整行
--color=auto 高亮显示匹配内容(系统默认已开启)

三、高频实用示例

1. 基础搜索(文件内查字符串)

在 test.log 中查找包含 error 的行

复制代码
grep "error" test.log

2. 忽略大小写

匹配 Error/ERROR/error 等

复制代码
grep -i "error" test.log

3. 显示行号

复制代码
grep -n "warning" test.log

4. 反向匹配(排除内容)

过滤掉包含 debug 的行

复制代码
grep -v "debug" test.log

5. 统计匹配行数

复制代码
grep -c "success" test.log

6. 递归搜索目录

在 /var/log 下所有文件中找 failed

复制代码
grep -r "failed" /var/log

7. 全词匹配

仅匹配完整单词 root,不匹配 rootuser 等子串

复制代码
grep -w "root" /etc/passwd

8. 只输出匹配内容

复制代码
grep -o "port:[0-9]*" app.log

9. 多条件搜索(扩展正则)

匹配包含 error 或 warning 的行

复制代码
grep -E "error|warning" test.log
# 等价于 egrep "error|warning" test.log

四、结合管道使用(最常用场景)

grep 常和其他命令配合,过滤命令输出:

复制代码
# 查看进程中是否有 nginx
ps aux | grep nginx

# 查看端口占用中 8080 相关
netstat -tuln | grep 8080

# 查看系统日志中的重启记录
dmesg | grep -i reboot

五、基础正则表达式用法

grep 默认支持基础正则(BRE),常用规则:

正则符号 含义
^ 匹配行首
$ 匹配行尾
. 匹配任意单个字符
* 匹配前一个字符 0 次或多次
[] 匹配括号内任意一个字符

示例:

  1. 匹配以 root 开头的行

    grep "^root" /etc/passwd

  2. 匹配以 sh 结尾的行

    grep "sh$" /etc/passwd

  3. 匹配包含 a 或 b 的行

    grep "[ab]" test.txt

相关推荐
开开心心就好30 分钟前
多份文档怎么批量打印?支持多种格式
java·服务器·开发语言·pdf·ocr·散列表·启发式算法
姜鱼问生1 小时前
每次开机手动检查 6 样东西?我写了个 2 秒自检脚本
运维·网络·nginx·docker·容器
钱工的门窗技术笔记1 小时前
智能门窗的边界与前提:为什么“智能”不能替代本体性能
网络·物联网·智能家居
是真的小外套2 小时前
2021年软考中级信息安全工程师:选择题+案例分析真题全解析(含答案)
网络
盟接之桥2 小时前
盟接之桥谈线束数字化-按单入按单出:线束企业库存管理的破局之道
大数据·前端·网络·数据库·人工智能·制造
高晶2 小时前
ARM 嵌入式 Linux 文件系统从入门到实战:目录结构、权限管理、选型与挂载排查全攻略
linux·程序员
南棋网络安全2 小时前
ssrf跨站请求伪造(保姆级教程)
运维·服务器·网络·网络安全
运维全世界2 小时前
Slurm集群搭建实战踩坑:存储节点无RAID、跨节点GPU无法读取数据彻底解决
linux
帷幕落秋2 小时前
进程服务与文件描述符
linux·运维·面试
用户209583592302 小时前
谛听(Diting)开发W7:检出率从 27% 到 100%,规则包从 19 条扩到 27 条
linux