Linux grep 命令用法详解

Linux grep 命令用法详解

grepGlobal 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. 多条件搜索(扩展正则)

匹配包含 errorwarning 的行

复制代码
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. 匹配包含 ab 的行

    grep "[ab]" test.txt

相关推荐
W.W.H.1 小时前
Linux共享文件夹不显示,每次都要重新加载问题解决
linux·运维·服务器
2401_835792542 小时前
Linux复习笔记
linux·服务器·笔记
s09071362 小时前
ZYNQ无SD卡纯NAND Flash启动Linux全攻略
linux·fpga开发·zynq·nand flash启动
ChengQianO2 小时前
ROS2 导航播报 & 轨迹模拟 —— 计划
linux·ubuntu·ros
志栋智能3 小时前
告别高昂投入:超自动化IT运维的轻量化实践
大数据·运维·网络·人工智能·自动化
扛枪的书生3 小时前
Jenkins 学习总结
linux
strive programming3 小时前
Linux从入门到精通——基础IO(简洁清晰版)
linux·运维·服务器
节点小宝3 小时前
一站式部署:支持Windows、macOS、Linux三端的统一方案
linux·运维·macos