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

相关推荐
Linux-lucky8 小时前
45-Linux学习之旅之防火墙与WEB加固
linux·前端·网络·学习·ubuntu
禁默8 小时前
启元 Q1 二次开发实践:Ubuntu 部署与仿真验证,从 PrimeConsole 到 ROS 2 Humble + RViz
linux·运维·ubuntu
skywalk81639 小时前
把 去也网站 从 Ubuntu 搬到 FreeBSD:一次 Service Jail + nginx 的部署实录
linux·运维·nginx·ubuntu·freebsd
爱莉希雅&&&11 小时前
GitLab 完整学习笔记
linux·运维·服务器
风笙97811 小时前
[文件系统]文件系统挂载与卸载详解
linux
GeW11 小时前
新质生产力路线图解读:数据库性能优化与Linux调优专场
linux·数据库
博客zhu虎康12 小时前
实现局域网P2P通信:内网发送消息
网络·网络协议·p2p
吴声子夜歌12 小时前
Kubernetes权威指南——网络原理(一)
网络·容器·kubernetes
陈希12313 小时前
Linux 服务器性能排查手册(2026):CPU、内存、磁盘IO、网络四大瓶颈定位
linux·服务器·网络
国科安芯14 小时前
从遥控到自治:ASP4644S2B支撑星载电源健康管理与容错配电
网络·单片机·嵌入式硬件·安全·dcdc·低轨卫星·商业航天