[Linux]grep

news/2025/1/15 17:40:53/文章来源:https://www.cnblogs.com/DCFV/p/18402356

grep 是 Linux 和 Unix 系统中用于搜索文本的强大工具。它可以在文件中搜索符合某种模式的文本,并将匹配的行输出。常见的用法包括正则表达式匹配、忽略大小写、递归搜索等。以下是一些常见的 grep 使用示例和选项:

基本用法

  1. 搜索一个关键词:

    grep "pattern" filename
    

    例如,搜索文件 test.txt 中包含 "hello" 的行:

    grep "hello" test.txt
    
  2. 忽略大小写搜索:

    使用 -i 选项忽略大小写:

    grep -i "pattern" filename
    

    例如,搜索文件中忽略大小写的 "hello":

    grep -i "hello" test.txt
    
  3. 递归搜索目录中的所有文件:

    使用 -r 选项在目录中递归搜索:

    grep -r "pattern" directory/
    

    例如,递归搜索当前目录下的所有文件中包含 "error" 的行:

    grep -r "error" .
    
  4. 显示匹配行的行号:

    使用 -n 选项显示匹配文本所在的行号:

    grep -n "pattern" filename
    

    例如,显示包含 "error" 的行号:

    grep -n "error" test.txt
    
  5. 搜索整个单词:

    使用 -w 选项仅匹配整个单词,而不是单词的子串:

    grep -w "word" filename
    

    例如,搜索文件中只包含单词 "is" 的行,而不是包含 "this" 或 "history" 的行:

    grep -w "is" test.txt
    
  6. 显示匹配的行数:

    使用 -c 选项显示匹配的行数:

    grep -c "pattern" filename
    

    例如,统计文件中包含 "error" 的行数:

    grep -c "error" test.txt
    
  7. 显示不匹配的行:

    使用 -v 选项显示不匹配的行:

    grep -v "pattern" filename
    

    例如,显示文件中不包含 "error" 的行:

    grep -v "error" test.txt
    
  8. 匹配多个文件:

    可以搜索多个文件并显示文件名:

    grep "pattern" file1 file2 file3
    
  9. 使用正则表达式:

    grep 默认支持基本正则表达式,可以使用 -E 来启用扩展正则表达式(相当于 egrep):

    grep -E "pattern" filename
    

    例如,搜索 "cat" 或 "dog":

    grep -E "cat|dog" test.txt
    
  10. 统计匹配的次数:

    使用 -o 选项显示每个匹配的模式,并结合 wc -l 统计匹配的次数:

    grep -o "pattern" filename | wc -l
    

    例如,统计文件中 "error" 出现的次数:

    grep -o "error" test.txt | wc -l
    

结合其他命令

  • sort 结合使用:搜索结果排序

    grep "pattern" filename | sort
    
  • find 结合使用:搜索多个文件类型

    find . -name "*.txt" | xargs grep "pattern"
    
  • awk 结合使用:搜索并处理匹配的内容

    grep "pattern" filename | awk '{ print $1 }'
    

这些是一些常用的 grep 命令示例。它可以与其他工具组合使用,适用于多种不同场景,非常灵活。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/793843.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

吴恩达 AI 完整课程资源2020汇总

风度78 于 2020-02-19 11:30:00 发布https://blog.csdn.net/fengdu78/article/details/104403851编辑 | Will 出品 | 字节AI 吴恩达(Andrew Ng),毫无疑问,是全球人工智能(AI)领域的大 IP!随着近些年来 AI 越来越火的大趋势下,吴恩达一直致力于普及、宣传、推广 AI 教育…

509迷宫

想法还是太过于巧妙了。 首先有一个很简单的容斥 \(n^2\) 做法。 然后我们能发现 \(mod\) 很小,注意:\(\forall_{1 \le i < mod}\) \(C_{mod}^{i} = 0\)。 所以就有个天才的做法,将矩阵沿着对角线切开,类似这样:如果我们每隔 \(mod\) 进行一次切割,那么我们就会发现如…

尿素

大周期看在走2浪的回调

零基础学习地平线 征程6 QAT 量化感知训练

1. 背景 首先感谢地平线工具链用户手册和官方提供的示例,给了我很大的帮助,特别是代码注释写了很多的知识点,超赞!要是注释能再详细点,就是超超赞了!下面开始正文。 最近想着学 QAT(量化感知训练)玩玩,大体看了一下地平线的用户手册,不说精度调优之类比较复杂的,光一个…

征程 6E/M 快速上手实战 Sample-PYM

01 IPC模块简述 1.1 硬件数据流 PYM(Pyramid)作为一个硬件加速模块(图像缩小及 ROI 提取),对输入的图像按照金字塔图层的方式处理,并输出到 DDR:PYM 模块在 Camsys 子系统的数量和位置如下,总共 3 个 PYM 硬件,PYM0、PYM1、PYM4(只支持 offline)。1.2 PYM-Sample 软…

#CAMA | 以视觉为中心的静态地图元素标注方法

01 现有标注方法的局限性 在自动驾驶领域,静态地图元素的精确标注是实现高精度环境感知的关键。然而,现有的公共数据集在一致性和准确性方面存在局限,无法满足日益增长的高精度训练数据需求。图一展示了 nuScenes 数据集中的默认高清地图无法在一致性和准确性两个方面提供准…

巧手打字通-在线打字练习网站功能大全

巧手打字通 Hello,大家好,今天来给大家介绍一个实用的在线打字练习网站。就是我们看到的“巧手打字通”。一个专为打字初学者,特别是中小学生量身设计的专业性平台。 打开网站,我们可以看到,整个网站的课程设计主要分为:入门课程,学拼音,说英语,读诗词,弹钢琴,玩游戏…

大模型API实战-console.bce.baidu.com/qianfan/

百度千帆大模型平台API调用实战 需要注册并实名制,然后到模型服务-->模型推理,选择可以免费开通的模型开通(其他都是收费的有坑)ACCESS_KEY、SECRET_KEY 和 AK、SK的获取 ACCESS_KEY、SECRET_KEYpython调用 # 安装包(Python >= 3.7):pip install qianfan import os …

main() 方法

根据 Java 语言规范,main() 方法必须被申明为 public。在 Java 1.4 及之后的版本中,Java 解释器强制要求 main() 方法必须是 public。 Java 语言规范(Java Language and Virtual Machine Specifications) public:被 JVM 调用,访问权限足够大。 static:被 JVM 调用,不用…

敏捷开发中的类型关系

​​ 欢迎来到我的博客:计算机软件技术总结 ‍

Linux(centos)安装安全狗

Step1:下载linux安全狗 在安全狗官网直接下载软件安装包(.tar.gz 格式:safedog_linux64.tar.gz)使用finalshell将文件发送到centos指定文件夹 [root@localhost ~]# ls anaconda-ks.cfg original-ks.cfg safedog_linux64.tar.gz vulhubStep2:解压并安装 解压缩safedog_lin…

小程序授权登录前后端对接及用户信息完善

对接后台登录流程 微信官方早都已经禁止开发者直接通过 api 获取用户信息数据了,大家拿个用户的 openid 注册好,剩下的让用户填写就行了。 先上官方的经典登录流程图:步骤拆分解析:前端通过 调用官方 API wx.login,将回调中的 code 临时登陆凭证传递给(请求)后台 后台去…