Shell通配符和正则表达式

目录

​​​​​​​grep

通配符

正则表达式


grep

grep家族有三大成员分别为:

        grep:支持使用基本正则表达式。

        egrep:支持使用扩展正则表达式。

        fgrep:不支持使用正则表达式,即所有的正则表达式中的元字符都将作为一般字符,仅仅

拥有其字面意义,不再拥有特殊意义

 

grep命令的基本语法如下:grep [options] pattern [file…]

[options]选项作用

-n 

显示行号

-o 

只显示匹配的内容

-q

静默模式,没有任何输出,得用$?来判断执行成功没有,即有没有过滤到想要的内容

-l

如果匹配成功,则只将文件名打印出来,失败则不打印,通常-rl一起用,grep -rl 'root' /etc

-A 

如果匹配成功,则将匹配行及其后n行一起打印出来

-B 

如果匹配成功,则将匹配行及其前n行一起打印出来

-C

如果匹配成功,则将匹配行及其前后n行一起打印出来

--color

高亮颜色显示匹配到的字符串

-c 

如果匹配成功,则将匹配到的行数打印出来

-E 

等于egrep,扩展

-i 

忽略大小写

-v 

取反,不匹配

-w

匹配单词

-r

递归搜索,不仅搜索当前目录,还要搜索其各级子目录

-s

不显示关于不存在或者无法读取文件的错误信息

通配符

通配符作用
*匹配任意长度字符,可以是0个
?匹配任意单个字符,必须是1个
[ ]匹配指定字符范围内的任意单个字符
[a-z]表示a-z,A-Y,但不包含Z
[ A-Z ]表示A,b,B.....z,Z,不包含a
[ a-Z ]包含所有大小写字母
[ :upper: ]所有大写字母
[ :lower: ]所有小写字母
[ :alpha: ]所有字母
[ :digit: ]所有数字
[ :blank: ]水平空白字符
[ :punct: ]标点符号
[ ^ ]匹配指定字符范围外的任意单个字符

正则表达式

^

在每行的开始进行匹配

$

在每行的末尾进行匹配

.

对任何单个字符进行匹配

*

对前一项进行0次或多次重复匹配

[str]

对str中的任何单个字符进行匹配

[^str]

对任何不在str中的单个字符进行匹配

[a-b]

对a到b之间的任何字符进行匹配

\

忽略后面一个字符的特殊含义

+

对前一项进行1次或多次重复匹配

对前一项进行0次或1次重复匹配

{j}

对前一项进行j次重复匹配

{j,}

对前一项进行j次或更多次重复匹配

{,k}

对前一项最多进行k次重复匹配

(s|t)

匹配s项或t项中的一项

[[:alnum:]]

匹配任意一个字母或者数字,等价于[A-Za-z0-9]

[[:alpha:]]

匹配任意一个字母,等价于[A-Za-z]

[[:digit:]]

匹配任意一个数字,等价于0-9

[[:lower:]]

匹配任意一个小写字母,等价于a-z

[[:upper:]]

匹配任意一个大写字母,等价于A-Z

[[:space:]]

匹配任意一个空白符,包括空格、制表符、换行符以及分页符

[[:blank:]]

匹配空格和制表符

[[:graph:]]

匹配任意一个看得见的可打印字符,不包括空白字符

[[:print:]]

匹配任何一个可以打印的字符,包括空白字符,但是不包括控制字符、字符串结束符‘\0’、EOF文件结束符(-1)

 [[:cntrl:]]

匹配任何一个控制字符,即ASCII字符集中的前32个字符。例如换行符、 制表符等

[[:punct:]]

匹配任何一个标点符号,例如“[]”、“{}”或者“,”等

[[:xdigit:]]

匹配十六进制数字,即0-9、a-f以及A-F

几个简单的使用例

^word 表示搜索以word开头的内容

 word$ 表示搜索以word结尾的内容

 . 代表且只能代表一个任意字符

 * 重复0个或多个前面的字符

 

[] 匹配字符集合内任意一个字符,如[a-z]

 

[^abc]在中括号里表示非,不包含a或b或c

 

找出"fdisk -l“命令的结果中,取出硬盘路径

fdisk -l | grep Disk | grep /dev/nv | cut -d: -f 1 | cut -d " " -f2

 

 

找出ifconfig命令输出中的所有IP地址

ifconfig | egrep -o "[0-9]{1,3}\.[0-9]{1,3}\.[0-9] {1,3}\.[0-9]{1,3}"

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

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

相关文章

网络安全(黑客技术)自学笔记

首先给大家简单介绍一下网络安全: 1.什么是网络安全? 网络安全可以基于攻击和防御视角来分类,我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 无论网络、…

感受C++模版的所带来的魅力

一、泛型编程思想 首先我们来看一下下面这三个函数,如果学习过了 C函数重载 和 C引用 的话,就可以知道下面这三个函数是可以共存的,而且传值会很方便 void Swap(int& left, int& right) {int temp left;left right;right temp; }…

基于Java+Swing+Mysql影院购票系统

基于JavaSwingMysql影院购票系统 一、系统介绍二、功能展示1.用户登陆2.用户订票管理3.电影售票中心4.电影上映管理4.退票记录查询 三、数据库四、其他系统实现五、获取源码 一、系统介绍 该系统实现了查看管理员登陆、用户订票管理、电影上映管理、电影售票中心、退票记录查询…

vue的学习

title: VUE 一、Vue简介 1.1 简介 ::: tip Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式的js框架,发布于 2014 年 2 月。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层&#xff0…

我对运维初学者的几点小建议

我对运维初学者的几点小建议 在此分享一下运维的职业规划和Linux学习的路线。希望给正在做运维工作或者准备入行运维这行的同学一些启发和帮助。 首先在学习Linux之前,我个人其实非常建议先把计算机基础知识学习好的。这些基础十分重要,别看都是一些理论…

使用Lambda表达式对List<Map<String,Object>>中key值相同的Map进行分组合并

现有两张表A表和B表,A表存放的是各省市的认证次数,B表存放的是各省市的申领次数,重点关注dq,cs这两个字段,其他的字段可忽略 A表(省市认证次数表) B表(省市申领次数表) 项目中有以下…

qt完整教程

各个组件的意思(功能介绍) Python Qt GUI设计:UI界面可视化组件、属性概述(基础篇—3)-腾讯云开发者社区-腾讯云 qt 如何设计好布局和漂亮的界面。_qt界面_花狗Fdog的博客-CSDN博客 样式表(美化关键)/*灰色*/ Q/*灰色*/ QWidget {background-color: rgb(255, 182, …

MySQL-概述-数据模型SQL简介

数据库:DataBase(DB),是存储和管理数据的仓库数据库管理系统:DataBase Management System(DBMS),操作和管理数据库的大型软件。SQL:Structured Query Language&#xff0…

汇报方案设计方案规划方案资源下载

标题汇报方案设计方案规划方案资源下载https://wheart.cn/so/home?mdw&tag%E5%AE%89%E5%85%A8文章标签事业单位人事人才信息综合管理系统建设设计报价方案人事系统,人事人才,事业单位,工资系统,职称系统xx纪检委智慧监督平台建设方案汇报.docx建设方案,规划设计,汇报方案营…

【C++】priority_queue使用与模拟实现

认识priority_queue 1、priority_queue(优先级队列)是一种容器适配器,底层是一个完全二叉树的大堆(堆总是一颗完全二叉树,根结点最大的堆叫做大堆;根结点最小的堆叫做小堆),头文件在queue中,根…

入侵排查与响应-window和linux版

目录 (一)关于这方面的一些简单了解 1、我们的电脑为什么会被黑客入侵 2、黑客攻击的方式 (二)window入侵排查 1、查看异常特征 2、系统账户安全 3、检测异常端口、进程 4、查看启动项、计划任务、服务 5、检查系统相关信…

Spring Cloud微服务治理框架深度解析

在学习一个技术之前,首先我们要了解它是做什么的,我们为什么要用它。不然看再多资料都理解不了,因此我们先来讲解下Spring Cloud Spring Cloud是一套微服务治理框架,几乎考虑到了微服务治理的方方面面。那么接下来具体说下 Spring…

Linux 的常用命令

文章目录 lsllcdpwd编辑简单文件touchcatecho 编辑复杂文件vim mkdirrmcpmvgerppsnetstat总结 ls 查看当前目录或指定目录下的所有文件 ls 什么都不加表示查看当前目录中的内容 ls目录名,就是插卡指定目录下的所有文件。/代表根目录。 注:蓝色的表示目…

【Leetcode】42.接雨水(困难)

一、题目 1、题目描述 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 示例1: 输入:height = [0,1,0,2,1,0,1,3,2,1,2,1] 输出:6 解释:上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6…

OpenCV实现一张图片的特定区域上添加另一张图片

#include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> using namespace cv;int main( ){Mat image= imread

java并发编程 10:AQS

目录 什么是AQS原理 什么是AQS juc包的结构如下图&#xff1a; AQS就是AbstractQueuedSynchronizer&#xff0c;是个抽象类&#xff0c;实现了自己的一些方法。它是阻塞式锁和相关的同步器工具的框架。很多并发类都是基于它实现的&#xff0c;如&#xff1a;ReentrantLock、Co…

Edge浏览器无法展示Stable Diffusion Control Net插件

Edge浏览器无法展示Stable Diffusion Control Net插件 最近在学习Stable Diffusion&#xff0c;需要使用到Control Net插件&#xff0c;结果通过各种方式安装成功插件后&#xff0c;浏览器页面没有展示ControlNet相关页面&#xff0c;最终换到Chorme浏览器后正常&#xff0c;猜…

连接区块链节点的 JavaScript 库 web3.js

文章目录 前言web3.js 介绍web3.js安装web3.js库模块介绍连接区块链节点向区块链网络发送数据查询区块链网络数据 前言 通过前面的文章我们可以知道基于区块链开发一个DApp&#xff0c;而DApp结合了智能合约和用户界面&#xff08;客户端&#xff09;&#xff0c;那客户端是如…

设计模式——工厂方法模式

工厂方法模式 定义 工厂方法模式的使用频率非常高 定义一个用于创建对象的接口&#xff0c;让子类决定实例化哪一个类。工厂方法将一个类的实例化延迟到其子类。 优缺点、使用场景 优点 良好的封装性&#xff0c;代码结构清晰。调用者需要一个产品&#xff0c;只需要知道…

图书馆工作效率太低?请疯狂使用这个工具!

在当今社会&#xff0c;对于公共场所的安全和保护变得越来越重要。图书馆作为一个重要的知识资源中心和学习场所&#xff0c;同样需要采取措施来确保其内部环境的安全性。其中&#xff0c;烟雾监控是一项关键的安全措施。 客户案例 浙江某图书馆每天都有大量的读者访问&#xf…