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

Linux基本命令篇 —— grep命令

        grep是Linux/Unix系统中一个非常强大的文本搜索工具,它的名字来源于"Global Regular Expression Print"(全局正则表达式打印)。grep命令用于在文件中搜索包含特定模式的行,并将匹配的行打印出来。

目录

一、基本语法

二、常用选项

三、基本用法示例

在文件中搜索字符串

忽略大小写搜索

显示匹配行的行号

统计匹配行数

递归搜索目录

反向匹配(显示不包含模式的行)

搜索多个文件

使用通配符搜索多个文件

四、高级用法

使用正则表达式

显示匹配行及其前后内容

搜索压缩文件

管道结合使用

使用扩展正则表达式

高亮显示匹配结果

五、实际应用场景

查找日志中的错误信息

统计代码中某个函数出现的次数

查找包含特定IP地址的日志行

查找空行

查找非空行

在多文件中查找并显示文件名


一、基本语法

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

二、常用选项

选项描述
-i忽略大小写
-v反向匹配,显示不包含模式的行
-n显示匹配行的行号
-c只显示匹配的行数
-l只显示包含匹配项的文件名
-L只显示不包含匹配项的文件名
-r 或 -R递归搜索子目录
-w匹配整个单词
-A n显示匹配行及其后n行
-B n显示匹配行及其前n行
-C n显示匹配行及其前后各n行
-E使用扩展正则表达式(等同于egrep)
-F将模式视为固定字符串而非正则表达式(等同于fgrep)
--color高亮显示匹配部分

三、基本用法示例

  1. 在文件中搜索字符串

    grep "search_pattern" file.txt

  2. 忽略大小写搜索

    grep -i "pattern" file.txt

  3. 显示匹配行的行号

    grep -n "pattern" file.txt

  4. 统计匹配行数

    grep -c "pattern" file.txt

  5. 递归搜索目录

    grep -r "pattern" /path/to/directory

  6. 反向匹配(显示不包含模式的行)

    grep -v "pattern" file.txt

  7. 搜索多个文件

    grep "pattern" file1.txt file2.txt

  8. 使用通配符搜索多个文件

    grep "pattern" *.log

四、高级用法

  1. 使用正则表达式

    grep "^start" file.txt      # 匹配以"start"开头的行
    grep "end$" file.txt        # 匹配以"end"结尾的行
    grep "[0-9]" file.txt       # 匹配包含数字的行
  2. 显示匹配行及其前后内容

    grep -A 2 "pattern" file2.txt  # 显示匹配行及后2行
    grep -B 2 "pattern" file2.txt  # 显示匹配行及前2行
    grep -C 2 "pattern" file2.txt  # 显示匹配行及前后各2行

  3. 搜索压缩文件

    zgrep "pattern" file.gz      # 搜索gzip压缩文件
    bzgrep "pattern" file.bz2    # 搜索bzip2压缩文件
  4. 管道结合使用

    cat file.txt | grep -v "exclude_"

  5. 使用扩展正则表达式

    grep -E "pattern1|pattern2" file.txt  # 匹配pattern1或pattern2

  6. 高亮显示匹配结果

    grep --color=auto "pattern" file.txt


五、实际应用场景

  1. 查找日志中的错误信息

    grep -i "error" /var/log/syslog
  2. 统计代码中某个函数出现的次数

    grep -c "function_name" *.c
  3. 查找包含特定IP地址的日志行

    grep "192\.168\.1\.100" /var/log/auth.log
  4. 查找空行

    grep "^$" file.txt
  5. 查找非空行

    grep -v "^$" file.txt
  6. 在多文件中查找并显示文件名

    grep -l "main" *.c

http://www.xdnf.cn/news/14742.html

相关文章:

  • jQuery UI 安装使用教程
  • 设置linux静态IP
  • 苹果AR/VR头显路线图曝光,微美全息推进AI/AR智能眼镜新品开启视觉体验篇章
  • 《UE5_C++多人TPS完整教程》学习笔记40 ——《P41 装备(武器)姿势(Equipped Pose)》
  • 为什么js是单线程?
  • 应用场景全解析:飞算 JavaAI 的实战舞台
  • 使用vue开发浏览器chrome插件教程,及之间的消息通信
  • Rust征服字节跳动:高并发服务器实战
  • HarmonyOS应用开发高级认证知识点梳理 (三)状态管理V2装饰器核心规则
  • 端到端 pluto 之数据预处理
  • js代码09
  • 飞算JavaAI—AI编程助手 | 编程领域的‘高科技指南针’,精准导航开发!
  • 边缘人工智能与医疗AI融合发展路径:技术融合与应用前景(下)
  • 计算机网络第一章——计算机网络体系结构
  • PHP安装使用教程
  • 华为云Flexus+DeepSeek征文|​​华为云ModelArts Studio大模型 + WPS:AI智能PPT生成解决方案​
  • 设计模式-观察者模式(发布订阅模式)
  • 如何让宿主机完全看不到Wi-Fi?虚拟机独立联网隐匿上网实战!
  • 百度文心大模型4.5系列正式开源,开源会给百度带来什么?
  • 华为云Flexus+DeepSeek征文 | ​​华为云ModelArts Studio大模型与企业AI会议纪要场景的对接方案
  • 深度学习04 卷积神经网络CNN
  • Spring 依赖注入:官方推荐方式及最佳实践
  • 2025年6月个人工作生活总结
  • 论文中用matplotlib画的图,如何保持大小一致。
  • 【智能体系统AgentOS】核心十:A2A工具
  • 2025 湖南大学程序设计竞赛(补题)
  • 跨主机用 Docker Compose 部署 PostgreSQL + PostGIS 主从
  • C++ 第四阶段 STL 容器 - 第五讲:详解 std::set 与 std::unordered_set
  • [JS逆向] 喜马拉雅登录案例
  • [面试] js手写题-树转数组