Linux 命令:grep

概述

  • 在Linux系统里,grep是一款十分实用的命令行工具,它主要用于在文件或者输入流中搜索符合特定模式的文本。下面为你详细介绍它的用法。
  • 资料已经分类整理好:https://pan.quark.cn/s/26d73f7dd8a7

基本语法

grep [选项] '搜索模式' [文件...]

常用选项

下面是grep命令一些常用的选项及其功能:

  • -i:在搜索时忽略大小写差异。
  • -v:只输出不匹配搜索模式的行。
  • -r-R:对目录进行递归搜索,会搜索目录下的所有子目录和文件。
  • -n:在输出结果中显示匹配行的行号。
  • -w:只匹配完整的单词,而不是单词的一部分。
  • -c:统计匹配到的行数,只输出计数结果。
  • -l:只显示包含匹配内容的文件名,而不显示具体的匹配行。
  • -L:只显示不包含匹配内容的文件名。
  • -A:除了输出匹配行,还会输出该行后面指定数量的行。
  • -B:除了输出匹配行,还会输出该行前面指定数量的行。
  • -C:除了输出匹配行,还会输出该行前后指定数量的行。

正则表达式元字符

grep中,可以借助以下元字符构建功能强大的搜索模式:

  • .:能够匹配任意单个字符。
  • *:表示前面的字符可以出现零次或多次。
  • ^:用于匹配行的开头。
  • $:用于匹配行的结尾。
  • []:可以匹配方括号中指定的任意一个字符。
  • [^ ]:匹配不在方括号内的任意一个字符。
  • \(\):用于对模式进行分组。
  • \|:表示或的关系,即匹配其中一个模式。

示例

以下是一些grep命令的常见使用示例:

  1. 在单个文件中搜索特定文本
grep 'error' log.txt

该命令会在log.txt文件中搜索包含error的行。

  1. 忽略大小写进行搜索
grep -i 'ERROR' log.txt

使用-i选项后,搜索时不会区分ERROR的大小写,能匹配到如Errorerror等不同大小写形式。

  1. 递归搜索目录中的文件
grep -r 'pattern' /path/to/directory

此命令会递归地在/path/to/directory目录下的所有文件中搜索包含pattern的行。

  1. 显示匹配行的行号
grep -n 'pattern' file.txt

加上-n选项,输出结果中会显示匹配行在文件中的行号。

  1. 搜索完整单词
grep -w 'the' text.txt

使用-w选项,只会匹配完整的单词the,而不会匹配像therethese等包含the的单词。

  1. 统计匹配行数
grep -c 'pattern' file.txt

-c选项会返回文件中匹配pattern的行数。

  1. 使用正则表达式
grep '^[A-Z].*' file.txt

这个命令使用正则表达式,会匹配所有以大写字母开头的行。

  1. 反向匹配
grep -v 'pattern' file.txt

-v选项会输出所有不包含pattern的行。

  1. 显示匹配行及其上下文
grep -C 3 'pattern' file.txt

使用-C 3选项,会输出匹配行以及该行前后各3行的内容。

与其他命令结合使用

grep常常和其他Linux命令一起使用,以实现更强大的功能:

  • 管道|grep
ls -l | grep 'Jul'

这个命令会列出当前目录下的文件和文件夹,并筛选出文件名中包含Jul的项目。

  • 查找文件并搜索内容
find /path -type f -name "*.txt" | xargs grep 'pattern'

该命令先使用find命令查找指定目录下的所有.txt文件,然后使用xargs将这些文件名传递给grep进行内容搜索。

掌握了这些用法,你就能在Linux系统中高效地使用grep命令进行文本搜索了。

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

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

相关文章

Java八股文——MySQL「架构篇」

MySQL主从复制了解吗 面试官您好,我了解MySQL的主从复制。它是构建高可用、高可扩展数据库架构的核心基石。 1. 主从复制的核心原理与流程 整个主从复制的过程,就是一场围绕 binlog(二进制日志) 的“接力赛”。这个过程主要可以…

ubuntu下python版本升级导致pyqt不能正常运行解决

最终解决方案 ubuntu下多python版本pyqt兼容性问题解决 python3.9 -m pip install --upgrade --force-reinstall --prefer-binary pyqt5)尝试解决方案一(失败) 系统默认python版本可以,其他版本不行 sudo apt install pyqt5-dev-tools尝试解决方案二(失败) 一直…

AIGC工具平台-VideoRetalking音频对口型数字人

唇形合成技术正逐渐成为AIGC内容生产领域的重要工具,能够实现音视频数据的高度融合。基于VideoRetalking模块的可视化界面降低了技术门槛,使非技术背景的用户也能便捷体验唇形驱动数字人合成的流程。 本文重点解析该模块的使用方式及开发流程&#xff0…

前端项目如何部署为https

如何为项目部署设置HTTPS 设置HTTPS是保护网站数据传输安全的重要步骤。以下是设置HTTPS的主要方法: 1. 获取SSL/TLS证书 免费证书选项 Let’s Encrypt:最流行的免费证书颁发机构Cloudflare:提供免费SSL和CDN服务ZeroSSL:另一…

nginx 配置 系统升级页面

默认80端口配置如下: server {listen 80; # 指定端口号server_name 192.168.2.96; # 替换为实际域名或IP# 全局重定向到升级页面(排除自身防循环)if ($request_uri !~* "/upgrade.html") {return 307 /upgrade.html; # 临时重定…

计算机基础(一)——设计模式

一、设计模式 设计模式(Design Patterns)是软件开发中反复出现问题的解决方案的通用描述。 它是经过总结、提炼的高效代码结构和设计方案,帮助开发者写出更灵活、可维护和可扩展的代码。 优点注意点规范代码结构,提高开发效率设…

Mac电脑 磁盘检测和监控工具 DriveDx

DriveDx Mac 一款不监视驱动器的内置S.M.A.R.T.状态的先进驱动器运行状况诊断和监测工具。 还分析了所有驱动器健康密切相关的指标, SSD或硬盘驱动器故障(像SSD磨损 /耐久性,坏扇区重新分配,离线坏道,未定扇形区&…

频繁操作Json嵌套数据PostgreSQL配合JSON操作工具类+sql

文章目录 1.工具类2.依赖3.sql 本文档只是为了留档方便以后工作运维,或者给同事分享文档内容比较简陋命令也不是特别全,不适合小白观看,如有不懂可以私信,上班期间都是在得 背景:因为频繁操作json嵌套数据 PostgreSQL得…

京东云 centos vim有操作混乱的问题

centos云服务器 安装micro编辑器可以解决 yum install micro

限流系列之二:TDMQ CKafka 版限流方案详解及最佳实践

导语 在当今大数据和实时通信的时代,消息队列在分布式系统中扮演着至关重要的角色。CKafka 作为一种高性能、高可靠的消息中间件,被广泛应用于各种业务场景中。然而,随着业务的增长和数据流量的增加,CKafka 在生产者和消费者以极…

消息队列的基本概念

文章目录 为什么需要消息队列?🤔🎯 核心价值📋 使用场景 🏗️ 架构层面的基本概念整体架构图📦 核心组件详解1. Broker(消息代理)2. Topic(主题)3. Partition…

Shell脚本中和||语法解析

https://www.cnblogs.com/liuyuelinfighting/p/16377705.html 在 Shell 脚本中,&& 和 || 是逻辑操作符,用于根据前一个命令的退出状态(成功或失败)决定是否执行后续命令。这种语法称为 命令链(Command Chainin…

MySQL中的常见运算符

精选专栏链接 🔗 MySQL技术笔记专栏Redis技术笔记专栏大模型搭建专栏Python学习笔记专栏深度学习算法专栏 欢迎订阅,点赞+关注,每日精进1%,共攀技术高峰 更多内容持续更新中!希望能给大家带来帮助~ &…

高级IO技术详解:阻塞/非阻塞IO、多路复用与内存映射

高级IO技术详解:阻塞/非阻塞IO、多路复用与内存映射 关键词:阻塞IO 非阻塞IO select/poll/epoll mmap 一、阻塞IO vs 非阻塞IO 类型行为特点设置方式阻塞IO- 读空管道阻塞- 写满管道阻塞默认模式非阻塞IO- 读空文件返回 -1,errnoEAGAIN- 写满…

【无标题】拓扑对偶框架的严格性补完与哲学突破

拓扑对偶框架的严格性补完与哲学突破: 一、数学严格性补完:同调类守恒的解决方案 1.1 负系数问题的几何化修正 **问题本质**:当 $a_i$ 含负数时,曲率分配 $\kappa\frac{2\pi a_i}{A_{\text{max}}}$ 导致伪黎曼流形 **解决方案…

从0开始学习R语言--Day25--A/B测试 vs 多臂老虎机

通常在比较两个不同的方案对数据的影响时,我们会各拿50%的数据去进行对照试验,这样观测到的结果会最大程度地保留统计学上的特点。但实际上,并不是所有对比不同方案都要这样做,一来,我们需要等到两组实验都完全结束后&…

功耗高?加密弱?爱普特APT32F1023H8S6单片机 2μA待机+AES硬件加密破局

爱普特APT32F1023H8S6单片机深度解析 1. 产品定位 APT32F1023H8S6 是爱普特半导体(APT)推出的 32位高性能单片机,基于 ARM Cortex-M0内核,主打 高集成度、低功耗、高性价比,面向消费电子、工业控制和物联网领域。 2. …

【MFC】绘制自定义控件-显示图片(支持放大操作)

目录 一、CDC类(二级缓存)二、计算视口三、放大操作代码中初始化操作(方便以后cv) 一、CDC类(二级缓存) CDC类是设备上下文的核心类,它的作用是抽象化对图形输出设备(像屏幕、打印机…

在Proteus新工程中放置基本元器件

视频教程: [最详细]Proteus新建第一个工程与快捷键设置 操作步骤 1选择这个黄色的三角,然后点击旁边的P,开始找元件。 2点开P后,呈现如下图界面,我们在Keyword栏中,输入stm32,然后他会自动出现对应的元件&…

PRUD币推动健康数据资产化,开启Web3隐私金融新时代

在全球健康科技与数据主权浪潮下,PRUD币(Prudential Utility & Data Token)正成为Web3健康金融领域中的重要通证。项目通过链上身份绑定、健康行为证明、隐私计算与NFT机制,为用户打造了“健康数据资产化”的创新路径&#xf…