当前位置: 首页 > news >正文

Linux grep 命令详解及示例大全

文章目录

      • 一、基本语法
      • 二、常用选项及示例
        • 1. 基本匹配:查找包含某字符串的行
        • 2. 忽略大小写匹配 -i
        • 3. 显示行号 -n
        • 4. 递归查找目录下的文件 -r 或 -R
        • 5. 仅显示匹配的字符串 -o
        • 6. 使用正则表达式 -E(扩展)或 egrep
        • 7. 显示匹配前后行 -A, -B, -C
        • 8. 统计匹配的行数 -c
        • 9. 仅显示文件名 -l(小写 L)
        • 10. 仅显示不匹配的行 -v
        • 11. 匹配整词 -w
        • 12. 匹配整行 -x
        • 13. 查找多个关键字 -e
        • 14. 在输出中高亮匹配内容 --color
        • 15. 查找二进制文件中的字符串 -a
      • 三、实用技巧合集
        • 1. 查找所有包含 IPv4 地址的行
        • 2. 排除某些文件类型
        • 3. 将结果输出到新文件
      • 四、总结

grep(Global Regular Expression Print)是 Linux/Unix 中非常强大的文本搜索工具,用于查找符合条件的字符串。它支持正则表达式、递归搜索、高亮显示等功能,是开发、运维人员的常用工具之一。

本文将全面介绍 grep 命令的常用选项,并结合示例帮助你掌握其使用技巧。

一、基本语法

grep [选项] '模式' 文件

二、常用选项及示例

1. 基本匹配:查找包含某字符串的行
grep "main" hello.c

说明:查找 hello.c 文件中所有包含 main 的行。

2. 忽略大小写匹配 -i
grep -i "hello" example.txt

说明:无论大小写,匹配 hello、Hello、HELLO 等。

3. 显示行号 -n
grep -n "return" hello.c

说明:显示每一行匹配内容所在的行号,便于定位。

4. 递归查找目录下的文件 -r 或 -R
grep -r "TODO" ./src/

说明:递归搜索 ./src/ 目录下所有文件中包含 TODO 的行。

5. 仅显示匹配的字符串 -o
grep -o "[0-9]\{3\}-[0-9]\{4\}" phones.txt

说明:只输出匹配的电话号码格式(如 123-4567),不显示整行。

6. 使用正则表达式 -E(扩展)或 egrep
grep -E "jpg|png|gif" files.txt

或者

egrep "jpg|png|gif" files.txt

说明:查找包含 jpg、png 或 gif 的行。

7. 显示匹配前后行 -A, -B, -C
grep -A 2 "error" log.txt

说明:显示匹配到 error 的行及其后面两行。

grep -B 2 "error" log.txt

说明:显示匹配行及其前两行。

grep -C 2 "error" log.txt

说明:显示匹配行以及前后各两行。

8. 统计匹配的行数 -c
grep -c "include" hello.c

说明:统计包含 include 的行数。

9. 仅显示文件名 -l(小写 L)
grep -l "main" *.c

说明:列出所有包含 main 的 .c 文件名。

10. 仅显示不匹配的行 -v
grep -v "^#" config.txt

说明:显示不以 # 开头的行(忽略注释)。

11. 匹配整词 -w
grep -w "int" hello.c

说明:只匹配单独出现的 int,不会匹配 print 或 integer。

12. 匹配整行 -x
grep -x "int main()" hello.c

说明:仅当整行完全匹配 int main() 时才显示。

13. 查找多个关键字 -e
grep -e "error" -e "fail" log.txt

说明:匹配包含 error 或 fail 的行。

14. 在输出中高亮匹配内容 --color
grep --color "main" hello.c

说明:将 main 高亮显示,方便快速识别。

15. 查找二进制文件中的字符串 -a
grep -a "PNG" image.png

说明:将二进制文件当作文本处理,可用于检查文件头等。

三、实用技巧合集

1. 查找所有包含 IPv4 地址的行
grep -Eo "[0-9]{1,3}(\.[0-9]{1,3}){3}" access.log
2. 排除某些文件类型
grep -r --exclude="*.o" "malloc" .
3. 将结果输出到新文件
grep "define" config.h > defines.txt

四、总结

选项 含义
-i 忽略大小写
-n 显示行号
-v 反向匹配
-c 统计匹配行数
-l 只显示文件名
-r 递归查找目录
-o 仅输出匹配部分
-A/-B/-C 显示匹配前后行
–color 高亮显示
-E / egrep 扩展正则

掌握 grep,你就拥有了一把在文本中快速定位问题的“放大镜”。无论是日志分析、源码检索,还是数据提取,grep 都能大大提高你的效率。

相关文章:

  • 多线程“CPU 飙高”问题:如何确保配置的线程数与CPU核数匹配(Java、GoLang、Python )中的最佳实践解决方案
  • 可检查异常与不可检查异常
  • suna工具调用可视化界面实现原理分析(三)
  • 【神经网络、Transformer及模型微调】
  • Windows11下ESP-IDF开发环境搭建【基于Cursor/VS Code插件】
  • 2025-05-06 滑动窗口最大值
  • 逐次逼近式A/D转换器
  • 1、PLC控制面板 - /自动化与控制组件/plc-control-panel
  • AI-02a5a2.神经网络的学习
  • C# 实现PLC数据自动化定时采集与存储(无需界面,自动化运行)
  • 2021-10-31 C++求一个千位和十位数字之和为10,百位个位之积为12的四位数
  • 针对面试-redis篇
  • mybatis 的多表查询
  • 【SpringBoot3】idea找不到log符号
  • 开源与商业:图形化编程工具的博弈与共生
  • 2025年游戏行业DDoS攻防指南:智能防御体系构建与实战策略
  • transformer➕lstm训练回归模型
  • hybird接口
  • 从 MDM 到 Data Fabric:下一代数据架构如何释放 AI 潜能
  • TS 泛型
  • 李云泽:将加快出台与房地产发展新模式相适配的系列融资制度
  • 创历史同期新高!“五一”假期全国快递揽投超48亿件
  • 专家解读《人源类器官研究伦理指引》:构建类器官研究全过程伦理治理框架
  • 山大齐鲁医院回应论文现“男性确诊子宫肌瘤”:给予该护士记过处分、降级处理
  • 人民日报:创新成势、澎湃向前,中国科技创新突围的密码与担当
  • 巴菲特再谈投资日本:希望持有日本五大商社至少50年