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

Linux三剑客-grep

grep介绍

全拼: Global search REgular expression and Print out line.
作用: 文本搜索工具,根据用户指定的“模式(过滤条件)”对目标文本逐行进行匹配检查,打印匹配到的行。
模式: 有正则表达式的 元字符 及 文本字符 所编写出的 过滤条件;

grep命令是Linux 系统中最重要的命令之一,功能是从 文本文件或管道数据流中筛选匹配的行和数据,如果在配合正则表达式,功能十分强大,是Linux运维人员必备的命令。

grep常用命令

语法:
    grep [options] [pattern] file
    命令  参数        匹配模式  文件数量
                    -i : ignorecase,忽略字符大小写;
                    -o : 进现实匹配到的字符串本身
                    -v ,--invert-match : 显示不能被模式匹配到的行  取反
                    -E : 支持使用扩展的正则表达式元字符
                    -q , --quiet, --silen : 静默模式,即不输出任何信息
一下是一些常用参数

参数选项解释说明
-v取反
-n显示匹配的行和行号
-i不区分大小写
-c只统计匹配到的行的数量
-E使用egrep命令使用正则
--cloear=auto为grep过滤添加颜色
-w只是匹配过滤的单词
-o只输出匹配的内容

grep案例

案例1:查找 /etc/passwd 文件中的root和Root并显示行号
grep -in 'root' /etc/passwd案例2:查找 /etc/passwd 文件中又多少行中有 root 账户
grep -cw 'root' /etc/passwd案例3:查找dome2中有几行非空行
grep -vc '^$' dome2    也可以按照后面来  grep -c '.' dome2案例4:查找dome2中的内容不要空行和注释行并打印行号
grep -vn '^$' dome2 | grep -v '^#'案例5:查找dome2中的内容以A开头的行
grep '^A' dome2案例6:查找dome2中的内容以 . 结尾的行
grep '\.$' dome2案例7:查找 /etc/passwd 中允许登录的账户 (结尾已 /bin/bash的账号都允许登录)
grep '\/bin\/bash$' /etc/passwd案例8: 查找 dome2文件 任意一个3位字符 包括ou
grep '.ou' dome2案例9:查找dome2文件中 所有的小写字母
grep [a-z] dome2案例10: 查找dome2文件中 找出除了 数字以外的字符
grep [^0-9] dome2案例11:查找dome2文件中 不包含数字的行 并且 不查找空行以及备注
grep -v '[0-9]' dome2 | grep -v '^$' | grep -v '^#'

grep扩展正则表达式案例

案例1:按照扩展正则表达式  查找dome2中的内容不要空行和注释行并打印行号
grep -Evn '^$|^#' dome2 
案例2:按照扩展正则表达式  查找dome2文件中 不包含数字的行 并且 不查找空行以及备注
grep -Ev "[0-9]|^$|^#" dome2   案例3: 匹配dome2文件中的rr 1次或者多次
grep -E 'rr+' dome2案例4: 匹配dome3文件中的go?d 0次或者1次
grep -E 'go?d' dome3案例5: 查找server下面以json结尾 文件名包含m 和 c的文件
find /server/ -name '*.json' | grep -E 'm|c'案例6:查找 dome3中的grad和gead
grep -E "g(r|e)ad" dome3案例7:查找dome4中 l..e前后都有并且数据一致的行
grep -E '(l..e).*\1' dome4
(l..e)  表示一组
.*      表示匹配任意字符
\1      在这里表示调用第一个()组 也就是(l..e)  \2表示调用第二个()组 \n表示调用第n个()组案例8: 查找dome4以a开头以e结尾的所有单词
grep -Eo '\ba/a-zA-Z/*e\b' dome4
\b		单词分割

相关文章:

Linux三剑客-grep

grep介绍 全拼: Global search REgular expression and Print out line. 作用: 文本搜索工具,根据用户指定的“模式(过滤条件)”对目标文本逐行进行匹配检查,打印匹配到的行。 模式: 有正则表达…...

备忘录模式memento

学习笔记,原文链接 https://refactoringguru.cn/design-patterns/memento 允许生成对象状态的快照并在以后将其还原。备忘录不会影响它所处理的对象的内部结构, 也不会影响快照中保存的数据。...

5-【JavaWeb】JUnit 单元测试及JUL 日志系统

1. 使用 JUnit 进行单元测试 JUnit 是 Java 中非常流行的单元测试框架&#xff0c;MyBatis 与 JUnit 可以很好地结合&#xff0c;来测试持久层代码的正确性。 1.1 添加 JUnit 依赖 在使用 JUnit 之前&#xff0c;需要在 pom.xml 中引入 JUnit 依赖。 <dependency><…...

多人开发小程序设置体验版的痛点

抛出痛点 在分配任务时,我们将需求分为三个分支任务,分别由前端A、B、C负责: 前端A: HCC-111-实现登录功能前端B: HCC-112-实现用户注册前端C: HCC-113-实现用户删除 相应地,我们创建三个功能分支: feature_HCC-111-实现登录功能feature_HCC-112-实现用户注册feature_HCC-1…...

【Kubernetes】常见面试题汇总(七)

目录 20.简述 Kubernetes 创建一个 Pod 的主要流程&#xff1f; 21.简述 Kubernetes 中 Pod 的重启策略&#xff1f; 20.简述 Kubernetes 创建一个 Pod 的主要流程&#xff1f; Kubernetes 中创建一个 Pod 涉及多个组件之间联动&#xff0c;主要流程如下&#xff1a; &#…...

EmguCV学习笔记 C# 11.1 DnnInvoke类

版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请在显著位置标明本文出处以及作者网名&#xff0c;未经作者允许不得用于商业目的。 EmguCV是一个基于OpenCV的开源免费的跨平台计算机视觉库,它向C#和VB.NET开发者提供了OpenCV库的大部分功能。 教程VB.net版本请访问…...

论文解读 | ACL2024 Outstanding Paper:因果指导的主动学习方法:助力大语言模型自动识别并去除偏见...

点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入&#xff01; 点击阅读原文观看作者直播讲解回放&#xff01; 作者简介 孙洲浩&#xff0c;哈尔滨工业大学SCIR实验室博士生 概述 尽管大语言模型&#xff08;LLMs&#xff09;展现出了非常强大的能力&#xff0c;但它们仍然…...

xLSTM模型学习笔记

笔记来源&#xff1a;bilibili LSTM 回顾 原始的 LSTM 是为了解决 RNN 时序反向传播中梯度消失和爆炸问题而提出的。 其所谓的门控机制&#xff0c;其实就是一种时序上的注意力机制&#xff0c;相当于把不同时间进行"掺和"&#xff0c;是对时序信息的一种选择性控制…...

woocommerce 调用当前product_tag 为标题

要在 WooCommerce 中调用当前产品标签&#xff08;product tag&#xff09;作为标题&#xff0c;你可以使用以下代码。这段代码将获取当前产品标签的名称&#xff0c;并将其显示为标题。 <?php // 获取当前产品标签名称 $current_tag single_term_title(, false);// 检查是…...

音视频开发:基于sdl的pcm播放器

源码 /*** SDL2播放PCM*** 本程序使用SDL2播放PCM音频采样数据。SDL实际上是对底层绘图* API&#xff08;Direct3D&#xff0c;OpenGL&#xff09;的封装&#xff0c;使用起来明显简单于直接调用底层* API。* 测试的PCM数据采用采样率44.1k, 采用精度S16SYS, 通道数2** 函数调…...

[产品管理-6]:NPDP新产品开发 - 4 - 战略 - 创新支持战略,支持组织的总体创新战略(平台战略、技术战略、营销战略、知识产权战略、能力建设战略)

目录 一、创新支持战略概述 二、平台战略&#xff1a;大平台小产品战略 2.1 概述 1、平台战略的定义 2、平台战略的特点 3、平台战略的应用领域 4、平台战略的成功案例 5、平台战略的发展趋势 2.2 大平台小产品战略 1&#xff09;大平台的建设 2&#xff09;、小产品…...

Cursor:程序员的AI助手,开启智能编程新时代

在当今快节奏的软件开发世界&#xff0c;效率和准确性是成功的关键。而 Cursor&#xff0c;作为一款创新的人工智能编程工具&#xff0c;正在极大地改变着编程的面貌&#xff0c;为开发者带来前所未有的便捷与惊喜。 智能代码生成 Cursor 利用强大的人工智能模型&#xff0c;…...

OpenAI 刚刚发布了新的Sora视频——实现的真人效果令人惊叹

在 YouTube 上发布了两段由专业创作者制作的新的“Sora Showcase”视频。这些视频展示了尚未发布的 Sora AI 视频模型的惊人潜力。 Sora 于今年二月首次宣布&#xff0c;但由于生成时间、成本和错误信息的潜在风险&#xff0c;光年AI 仅向一小部分创作者 开放了该模型。 自So…...

计算机视觉学习路线

计算机视觉是一门让机器理解和解释视觉世界的科学&#xff0c;它涉及到图像识别、图像处理、模式识别等多个方向。学习计算机视觉的路线通常包括以下几个阶段&#xff1a; 数学和编程基础&#xff1a;需要掌握微积分、线性代数、概率论等数学知识&#xff0c;以及Python或C等编…...

JNPF快速开发平台在企业中的应用

随着数字化转型的浪潮席卷全球&#xff0c;企业纷纷寻求高效、灵活的解决方案以适应快速变化的市场需求。在这一背景下&#xff0c;低代码开发平台应运而生&#xff0c;成为数字经济的“软基建”。今天&#xff0c;我们就来探讨JNPF快速开发平台如何在企业中发挥作用&#xff0…...

Mysql高级篇(中)—— 索引优化

Mysql高级篇&#xff08;中&#xff09;—— 索引优化 一、索引分析案例案例 1&#xff1a;单表查询案例 2&#xff1a;两表连接查询案例 3&#xff1a;三表连接查询 二、避免索引失效常见索引失效场景简述场景 1场景 2场景 3场景 4场景 5场景 6 三、索引优化文字版示例版 一、…...

electron: 将网址打包成exe桌面应用

项目场景&#xff1a; 在项目开发的过程中&#xff0c;需要将应用搭建在不同的硬件上。如需要在一个触屏显示器上展示企业相关的应用。 如果专门去开发一个这样的应用&#xff0c;不划算&#xff1b;这时候考虑将网址打包成exe应用&#xff0c;并安装触屏器上&#xff0c;就可…...

【Python篇】PyQt5 超详细教程——由入门到精通(中篇二)

文章目录 PyQt5超详细教程前言第7部分&#xff1a;生成图表与数据可视化7.1 matplotlib 与 PyQt5 的结合7.2 在 PyQt5 中嵌入 matplotlib 图表示例 1&#xff1a;嵌入简单的 matplotlib 图表代码详解&#xff1a; 7.3 动态生成图表示例 2&#xff1a;动态更新图表代码详解&…...

2024/9/10 小型PLC典型应用1:含步进电机+变频器+触摸屏

主要是讲脉冲控制步进&#xff0c;因为etherCat是标准化的&#xff0c;直接通过轴控指令即可控制&#xff1b;canopen也涉及轴控指令&#xff0c;但配置稍微有点不一样。 控制本体端口的步进&#xff0c;通过发脉冲或者脉冲定位信号。 但这个4PM只有单独的轴控指令&#xff0c;…...

RGB与CMYK互转

先定义一个CMYK数据结构&#xff1a; typedef struct struCMYK {int m_nC;int m_nM;int m_nY;int m_nK; }CMYK;RGB转CMYK void CvtRGB2CMYK(COLORREF& clr, CMYK& cmyk) {double dR GetBValue(clr) / 255.0;double dG GetGValue(clr) / 255.0;double dB GetRValue…...

网络编程(Modbus进阶)

思维导图 Modbus RTU&#xff08;先学一点理论&#xff09; 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议&#xff0c;由 Modicon 公司&#xff08;现施耐德电气&#xff09;于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...

eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)

说明&#xff1a; 想象一下&#xff0c;你正在用eNSP搭建一个虚拟的网络世界&#xff0c;里面有虚拟的路由器、交换机、电脑&#xff08;PC&#xff09;等等。这些设备都在你的电脑里面“运行”&#xff0c;它们之间可以互相通信&#xff0c;就像一个封闭的小王国。 但是&#…...

.Net框架,除了EF还有很多很多......

文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...

Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)

文章目录 1.什么是Redis&#xff1f;2.为什么要使用redis作为mysql的缓存&#xff1f;3.什么是缓存雪崩、缓存穿透、缓存击穿&#xff1f;3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...

Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件

今天呢&#xff0c;博主的学习进度也是步入了Java Mybatis 框架&#xff0c;目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学&#xff0c;希望能对大家有所帮助&#xff0c;也特别欢迎大家指点不足之处&#xff0c;小生很乐意接受正确的建议&…...

Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!

一、引言 在数据驱动的背景下&#xff0c;知识图谱凭借其高效的信息组织能力&#xff0c;正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合&#xff0c;探讨知识图谱开发的实现细节&#xff0c;帮助读者掌握该技术栈在实际项目中的落地方法。 …...

Java入门学习详细版(一)

大家好&#xff0c;Java 学习是一个系统学习的过程&#xff0c;核心原则就是“理论 实践 坚持”&#xff0c;并且需循序渐进&#xff0c;不可过于着急&#xff0c;本篇文章推出的这份详细入门学习资料将带大家从零基础开始&#xff0c;逐步掌握 Java 的核心概念和编程技能。 …...

Android15默认授权浮窗权限

我们经常有那种需求&#xff0c;客户需要定制的apk集成在ROM中&#xff0c;并且默认授予其【显示在其他应用的上层】权限&#xff0c;也就是我们常说的浮窗权限&#xff0c;那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…...

有限自动机到正规文法转换器v1.0

1 项目简介 这是一个功能强大的有限自动机&#xff08;Finite Automaton, FA&#xff09;到正规文法&#xff08;Regular Grammar&#xff09;转换器&#xff0c;它配备了一个直观且完整的图形用户界面&#xff0c;使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...

关键领域软件测试的突围之路:如何破解安全与效率的平衡难题

在数字化浪潮席卷全球的今天&#xff0c;软件系统已成为国家关键领域的核心战斗力。不同于普通商业软件&#xff0c;这些承载着国家安全使命的软件系统面临着前所未有的质量挑战——如何在确保绝对安全的前提下&#xff0c;实现高效测试与快速迭代&#xff1f;这一命题正考验着…...