grep的实战用法

简介: grep的实战用法

grep 是 Linux 及类 Unix 系统中非常强大的文本搜索工具,它可以基于用户提供的模式(pattern)在文件或输入流中搜索匹配的行,并将其输出。以下是一些 grep 命令的实战用法:

基础用法

  • 搜索单个文件

    grep '搜索词' 文件名
    

    例如,要在一个名为 log.txt 的文件中搜索包含 "error" 的行:

    grep 'error' log.txt
    
  • 搜索多个文件

    grep '搜索词' 文件1 文件2 ...
    
  • 搜索目录下的所有文件

    grep '搜索词' ./*
    

    或者递归搜索子目录:

    grep -r '搜索词' 目录名
    

高级用法

  • 忽略大小写

    grep -i 'searchWord' file.txt
    

    -i 参数让搜索不区分大小写。

  • 正则表达式搜索

    grep -E 'regex_pattern' file.txt
    

    -E--extended-regexp 使用扩展正则表达式。若想使用基本正则表达式(BRE),无需额外参数,默认情况下 grep 使用的就是 BRE。

  • 反向搜索

    grep -v '排除词' file.txt
    

    -v 参数表示打印不包含指定模式的行。

  • 输出行号

    grep -n '搜索词' file.txt
    

    -n 参数会让 grep 输出匹配行时带上行号。

  • 统计匹配行数

    grep -c '搜索词' file.txt
    

    -c 参数用来计算匹配行的数量而不是列出具体的匹配行。

  • 仅显示匹配部分

    grep -o '模式' file.txt
    

    -o 参数只会输出每行中匹配到的部分,而非整行。

  • 多模式搜索

    grep -e '模式1' -e '模式2' file.txt
    

    -e 参数后跟多个模式,可同时搜索多个不同的模式。

示例

  • 搜索以特定字符串开头的行

    grep '^inet ' /etc/network/interfaces
    

    这将找到所有以 "inet " 开头的行。

  • 搜索并显示匹配行及其上下文

    grep -C 2 '搜索词' file.txt
    

    -C 参数后面跟着数字,表示显示匹配行前后的若干行。

以上只是 grep 的部分实战用法,实际上 grep 的功能远不止这些,还可以与其他命令结合使用,如管道(|)、重定向(>>>)等进行更复杂的文本处理任务。

目录
相关文章
|
消息中间件 NoSQL Java
设计了简单高效的弹幕系统!老板直接加薪
先赞后看,南哥助你Java进阶一大半系统最早起源于日本,流行于视频网站。我们认识的初音未来(Hatsune Miku)就是在niconico平台上爆红的!!我是南哥,一个Java学习与进阶的领路人,相信对你通关面试、拿下Offer进入心心念念的公司有所帮助。
246 3
设计了简单高效的弹幕系统!老板直接加薪
|
4月前
|
Java
String.format 详解
在 Java 中,String.format 是一个用于格式化字符串的静态方法。它允许你按照特定的格式将数据插入到字符串中。String.format 通过使用占位符和格式化标记,可以生成具有指定格式的字符串。
312 4
|
分布式计算 DataWorks 算法
关于单次亿级图片素材调度、处理及使用的工程实践总结
作者有幸参与设计和开发了涉及数十亿量级的图片素材调度、处理和索引使用的平台-产业AI素材库,在平台的建设落地过程中,踩了许多坑,也有了一些工程落地上的实践总结,希望分享给大家。
214 10
|
数据采集 数据可视化 算法
基于Python flask的boss直聘数据分析与可视化系统案例,能预测boss直聘某个岗位某个城市的薪资
本文介绍了一个基于Python Flask框架的Boss直聘数据分析与可视化系统,系统使用selenium爬虫、MySQL和csv进行数据存储,通过Pandas和Numpy进行数据处理分析,并采用模糊匹配算法进行薪资预测。
482 0
基于Python flask的boss直聘数据分析与可视化系统案例,能预测boss直聘某个岗位某个城市的薪资
|
机器学习/深度学习 自动驾驶 搜索推荐
大模型技术的端侧部署
【1月更文挑战第14天】大模型技术的端侧部署
946 4
大模型技术的端侧部署
|
机器学习/深度学习 Python
探索Python中的集成方法:Stacking
探索Python中的集成方法:Stacking
855 3
|
存储 安全 数据挖掘
性能30%↑|阿里云AnalyticDB X AMD EPYC,数据分析步入Next Level
阿里云原生数仓 AnalyticDB for PostgreSQL 与 AMD 新一代硬件深度优化,结合全自研计算引擎及行列混合存储实现性能升级,综合性能提升30%。结合丰富的企业级能力帮助企业构建离在线一体、流批一体综合数据分析平台,采用同一引擎即可满足离线批处理、流式加工,交互式分析三种场景,在开发运维、时效性及成本上具备更高的性价比。
752 0
|
算法 测试技术
LeetCode的使用方法
LeetCode 是一个上提供一系列的算法题,并且具备多种编程语言优秀在线编辑体验。在这样的基础之上,LeetCode 对于各类题目的描述简洁易懂,题库更新极快,最重要的是它的含金量受到大众的认可,拥有庞大的用户群体,对于每一道算法题基本能够寻找到较好的解题思路。特别说明的是,该平台更为着重对于算法思路的训练,采取的并非 ACM 模式的全包全揽,而是提供一个需要实现的函数,测试用例的定义和主方法的调用等等将由系统提供。 需要训练 ACM 模式的,可以尝试牛客网的刷题模式。 LeeCode 刷题思路 作为一个
496 0
|
jenkins 持续交付
使用命令行操作svn
使用命令行操作svn
933 0
|
存储 传感器 机器学习/深度学习
V2X会是未来趋势吗?看看这种轻量级方法,大幅降低碰撞概率!
本文提出了一种Ledger概念,它通过Ledger信息的广播,在一个资源预留区间(RRI)内向网络中的每辆车传递碰撞信息。碰撞车辆知道它已经与其他车辆相撞,并将在下一个 SPS 期间重新选择。除此之外,其他协议都遵循 SPS。通过引入 Ledger,虽然牺牲了14.29% 的资源,但最终可以降低碰撞概率。本文使用蒙特卡罗模拟器对Ledger系统的性能进行了验证和分析。数值结果表明,遵循 SPS 协议,Ledger 系统可以使碰撞概率在一定数量 RRI 后收敛到零。
V2X会是未来趋势吗?看看这种轻量级方法,大幅降低碰撞概率!