【Linux命令】grep

Linux命令-grep

  • GREP命令:进行字符串数据的比对,并将符合指定模式的字符串行打印出来。
    • 1.命令介绍
      • 基础正则表达式
      • 原始文档如下:
    • 2.练习题:
      • 2.1 练习(一):
        • 2.1.1 读取加行号的文件内容:
        • 2.1.2 查找特定字符串"the",并标准关键字所在的行号
        • 2.1.3 反向选择:查找不含字符串"the"的行
        • 2.1.4 取得不论大小的the
      • 2.2 练习(二)
        • 2.2.1 利用中括号[]来搜寻集合字符
        • 2.2.2 搜索以小写字母打头的行
        • 2.2.3 搜索不是以字母打头的行
      • 2.3 练习(三)
        • 2.3.1 获取空白行
        • 2.3.2 获取至少两个o以上的字符串
        • 2.3.3 获取g开头且g结尾的字符串
      • 2.4 练习(四)

GREP命令:进行字符串数据的比对,并将符合指定模式的字符串行打印出来。

1.命令介绍

grep [-A] [-B] [-n] [-v] [--color=auto] '搜寻的关键字' filename

-A:后面可加数字,为after的意思,除了列出该行外,后续的n行也列出来;
-B: 后面可加数字,为before的意思,除了列出该行外,前面的n行也列出来;
–color=auto: 可将匹配到的关键字加颜色进行标注
-n:这个选项指示 grep 在输出的每一行前面显示行号。它可以帮助用户快速定位到匹配的内容。
-v:这个选项用于反向选择(invert match)匹配的行。也就是说,使用这个选项时,grep 将输出所有不匹配指定模式的行。
-i:这个选项表示“忽略大小写”。也就是说,在搜索字符串时,grep 将忽略字母的大小写。例如,the 会匹配 The、THE、tHe 等。

基础正则表达式

在这里插入图片描述

原始文档如下:

abcdefg
ABCDEFG
1234567890

0000000000
1111111111

TTTTTTTTTT


EFKLSPF;SAKD;F
goodbye

获取’00’所在的行的命令

grep -A5 -B4  -n '00' example.txt 

打印结果:
在这里插入图片描述

2.练习题:

原始文件:regular_express.txt,文件内容 共22行,最后一行为空白行

"Open Source" is a good mechanism to develop programs.
apple is my favorite food.
Football game is not use feet only.
this dress doesn't fit me.
However, this dress is about $ 3183 dollars.^M
GNU is free air not free beer.^M
Her hair is very beauty.^M
I can't finish the test.^M
Oh! The soup taste good.^M
motorcycle is cheap than car.
This window is clear.
the symbol '*' is represented as start.
Oh! My god!
The gd software is a library for drafting programs.^M
You are the best is mean you are the no. 1.
The world <Happy> is the same with "glad".
I like dog.
google is the best tools for search keyword.
goooooogle yes!
go! go! Let's go.
# I am VBird

2.1 练习(一):

2.1.1 读取加行号的文件内容:
cat -n regular_express.txt

读取结果:
在这里插入图片描述

2.1.2 查找特定字符串"the",并标准关键字所在的行号
 grep -n 'the' regular_express.txt 

搜索结果:
在这里插入图片描述

2.1.3 反向选择:查找不含字符串"the"的行

命令:

grep -vn 'the' regular_express.txt 

搜索结果:
在这里插入图片描述

2.1.4 取得不论大小的the

命令:

grep -in 'the' regular_express.txt

搜搜结果:
在这里插入图片描述

2.2 练习(二)

2.2.1 利用中括号[]来搜寻集合字符
grep -n 't[ae]st' regular_express.txt

搜索结果:
在这里插入图片描述

2.2.2 搜索以小写字母打头的行
 grep -n '^[a-z]' regular_express.txt

搜索结果:
在这里插入图片描述

2.2.3 搜索不是以字母打头的行

说明:

方式1:

grep -n '^[^[:alpha:]]' regular_express.txt  

方式2:

grep -n '^[^a-zA-Z]' regular_express.txt

搜索结果:
在这里插入图片描述

2.3 练习(三)

2.3.1 获取空白行
grep -n '^$' regular_express.txt

搜索结果:
在这里插入图片描述

2.3.2 获取至少两个o以上的字符串
grep -n 'ooo*' regular_express.txt 

说明:前面两个o必须要,最后一个o是可有可无的多个o
搜索结果:
在这里插入图片描述

2.3.3 获取g开头且g结尾的字符串
grep -n 'g.*g' regular_express.txt

搜索结果:

2.4 练习(四)

限定范围字符{}
找出含有2-5个o的字符串的命令

grep -n 'o\{2,5\}' regular_express.txt

搜索结果:
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

WMS 如何实现智能仓储与自动化物流的无缝对接

【大家好,我是唐Sun,唐Sun的唐,唐Sun的Sun。】 在当今高度竞争的商业环境中,企业对于物流效率和仓储管理的要求日益严苛。智能仓储和自动化物流作为现代物流领域的重要发展方向,能够显著提高物流运作的速度、准确性和成…

DevOps-Jenkins-新手入门级

1. Jenkins概述 1. Jenkins是一个开源持续集成的工具,是由JAVA开发而成 2. Jenkins是一个调度平台,本身不处理任何事情,调用插件来完成所有的工作 1.1 什么是代码部署 代码发布/部署>开发书写的程序代码---->部署测试/生产环境 web服务…

WEB APIS(DOM对象,操作元素内容,属性,表单属性,自定义属性,定时器)

js基础基本语法: 变量,数据类型,循环,函数,对象等(主要是控制台打印) WEB APIS 操作DOM BOM : 控制网页元素,交互等各种网页交互效果 js高级 语法: js新增语法&#xff0…

cs144(一)

cs144(一) 1、osi 当应用程序有数据要发送时,应用层将数据交给传输层, 传输层负责将数据可靠或不可靠地传送到另外一端,传输层通过将数据交给网络层来发送数据 网络层负责将数据分成数据包,每个数据包都有正确的目的地址 最后…

IEC61850读服务器目录命令——GetServerDirectory介绍

IEC61850标准中的GetServerDirectory命令是变电站自动化系统中非常重要的一个功能,它主要用于读取服务器的目录信息,特别是服务器的逻辑设备节点(LDevice)信息。以下是对GetServerDirectory命令的详细介绍。 目录 一、命令功能 …

如何使用AWS Lambda构建一个云端工具(超详细)

首发地址(欢迎大家访问):如何使用AWS Lambda构建一个云端工具(超详细) 1 前言 1.1 无服务器架构 无服务器架构(Serverless Computing)是一种云计算服务模型,它允许开发者构建和运行…

力扣-位运算-1【算法学习day.41】

前言 ###我做这类文档一个重要的目的还是给正在学习的大家提供方向(例如想要掌握基础用法,该刷哪些题?)我的解析也不会做的非常详细,只会提供思路和一些关键点,力扣上的大佬们的题解质量是非常非常高滴&am…

MySQL数据库学习(持续更新ing)

1. 什么是数据库?什么是数据库管理系统?什么是SQL?他们之间的关系是什么? 数据库:Database, 简称DB。按照一定格式存储数据,一些文件的组合。 数据库管理系统:DataBaseManagement&…

【Python · PyTorch】循环神经网络 RNN(基础概念)

【Python PyTorch】循环神经网络 RNN(基础概念) 0. 生物学相似性1. 概念2. 延时神经网络(TDNN)3. 简单循环神经网络(Simple RNN)3.1 BiRNN 双向循环神经网络3.2 特点记忆性参数共享图灵完备 3.3 网络结构3…

【Isaac Sim】相关问题汇总

目录 一、安装点击Install时报错二、启动时报 Failed to create any GPU devices三、加载Isaac Sim自带模型或示例时报 Isaac Sim is not responding 一、安装点击Install时报错 报错: request to https://asset.launcher.omniverse.nvidia.com/… failed, reason:…

接口上传视频和oss直传视频到阿里云组件

接口视频上传 <template><div class"component-upload-video"><el-uploadclass"avatar-uploader":action"uploadImgUrl":on-progress"uploadVideoProcess":on-success"handleUploadSuccess":limit"lim…

DataWorks快速入门

DataWorks基于MaxCompute、Hologres、EMR、AnalyticDB、CDP等大数据引擎&#xff0c;为数据仓库、数据湖、湖仓一体等解决方案提供统一的全链路大数据开发治理平台。本文以DataWorks的部分核心功能为例&#xff0c;指导您使用DataWorks接入数据并进行业务处理、周期调度以及数据…

项目学习:仿b站的视频网站项目03-注册功能

概括 通过上一期&#xff0c;完成了项目和数据库的基础结构的搭建&#xff0c;接下来主要是完成项目的注册功能。该功能模块主要分为有两个接口&#xff0c;一个是验证码接口&#xff0c;一个是注册接口。 让我们开始吧&#xff01; 验证码接口 验证码的生成主要配合下面这…

20.100ASK_T113-PRO 开发板开机自动QT程序简单的方法一

本文详细介绍了在嵌入式系统中实现程序开机自启动的多种方法&#xff0c;包括通过修改/etc/profile、/etc/rc.local文件&#xff0c;以及在/etc/init.d目录下创建启动脚本等方式。文章还解释了不同配置文件的作用及它们之间的区别。 开机自动启动QT应用程序 用户模式下的启动 …

【Java】Linux、Mac、Windows 安装 Oracle JDK

一、Linux 环境安装JDK 1、下载 根据实际需求&#xff0c;在 Oracle 官网 上下载某版本JDK&#xff08;如 jdk-8u341-linux-x64.tar.gz&#xff09;&#xff0c;再通过文件传输工具&#xff08;如 Finalshell、FileZilla 等&#xff09;丢到服务器上。 2、安装 # 查看是否安…

Web3与智能合约:区块链技术下的数字信任体系

随着互联网的不断发展&#xff0c;Web3代表着我们迈入了一个去中心化、更加安全和智能的网络时代。作为Web3的核心组成部分&#xff0c;区块链技术为智能合约的出现和发展提供了强有力的基础。智能合约不仅仅是自动化的代码&#xff0c;它们正逐步成为重塑数字世界信任体系的关…

怎么把湖南平江1000吨黄金开采出来?开采露天金矿的实用公式与方案——露天矿山爆破设计施工方案

在露天矿山爆破设计中&#xff0c;面对多溶洞、多破碎带和多断层的复杂地质条件&#xff0c;需要制定一套科学、合理的爆破方案。以下是一份详细的爆破设计施工方案&#xff0c;包括爆破参数与计算公式&#xff1a; 一、爆破设计原则 1.安全性&#xff1a;确保爆破作业过程中的…

电子应用设计方案-20:智能电冰箱系统方案设计

智能电冰箱系统方案设计 一、系统概述 本智能电冰箱系统旨在提供更便捷、高效、智能化的食品存储和管理解决方案&#xff0c;通过集成多种传感器、智能控制技术和联网功能&#xff0c;实现对冰箱内部环境的精确监测和控制&#xff0c;以及与用户的互动和远程管理。 二、系统组成…

栈的应用,力扣394.字符串解码力扣946.验证栈序列力扣429.N叉树的层序遍历力扣103.二叉树的锯齿形层序遍历

目录 力扣394.字符串解码 力扣946.验证栈序列 力扣429.N叉树的层序遍历 力扣103.二叉树的锯齿形层序遍历 力扣394.字符串解码 看见括号&#xff0c;由内而外&#xff0c;转向用栈解决。使用两个栈处理&#xff0c;一个用String,一个用Integer 遇到数字:提取数字放入到数字栈…

pandas与open读取csv/txt文件速度比较

pandas与open读取csv/txt文件速度比较 由于在工作中经常需要读取txt或csv文件&#xff0c;使用pandas与open均可以读取并操作文件内容&#xff0c;但不知道那个速度更快一些&#xff0c;所以写了一个脚本去比较在文件大小不同的情况下读取数据的速度 测试结果: 大小pandas速度…