Linux中的正则表达式

在说正则表达式之前再加几个小知识

1、输出重定向:

标准输出:是将信息输出在终端上

标准错误输出:在执行命令的过程中所产生的错误信息也是输出在终端上的

标准输出:是从键盘输入的

1.1、标准输出重定向

 作用:将本来要显示在终端上的信息重定向到一个文件中

实现方法:

用:

    >                        将文件中原有的内容全部删除,然后进行写入

    >>                      在文件原有的内容之后,追加新的内容

例如:在终端上输出123并追加到a.txt里

echo "123" >> a.txt 

1.2、标准错误输出 

实现方法:

2>                将文件中原有的内容全部删除,然后进行写入

2>>              将文件中原有的内容全部删除,然后进行写入

例如:将ls /sdjfl 这个命令追加到黑洞文件(/dev/null)

ls /sdifl 2>> /dev/null 

2、通配符

2.1、*:表示任意长度的任意字符
例子:删除根下以 a 开头文件
           rm -rf a*
2.2、?:表示一个长度的任意字符
例子:删除根下文件名第二个是 a 的文件
           rm -rf ?a
2.3、;:链接多个命令
    cd -;cd -        返回上上次所在的路径
&&:只有前面的命令执行成功后,后面的命令才会执行
||:只有前面命令执行失败后,后面的命令才会执行
2.4、#:注释行(描述信息,但是不执行)
2.5、|:传递命令的执行结果
2.6、~:返回当前用户的家目录
2.7、-:返回上次所在目录
2.8、$:变量前要加的符号
2.9、/:路径分隔符(或者是根)
2.10、“>  >>”:标准重定向
2.11、” <<“:标准错误重定向

        用来打印菜单

        cat <<EOF

        >1

        >2

        >EOF        #结尾退出用这个

2.12、引号
' ' : 弱引用,引用的内容原样输出
" " : 强引用,引用中变量会变成变量的值
`` : 命令替换
 2.13、点(.)
        表示当前目录
        ..上一级目录
2.14、花括号扩展:{}
用法:
创建1.dir到10.dir目录
        mkdir {1..10}.dir

正则表达式简介:

构成:是由一堆的特殊符号和字母构成的(元字符)

作用:通过对文本中的内容进行过滤,然后对文件中的内容进行过滤

 正则表达式的种类:

        基础正则表达式、扩展正则表达式

通常结合三个命令来使用(又称三剑客)

        grep、sed、awk

今天我们来学习grep命令

grep命令

作用:对文件中的内容进行过滤

格式:grep 选项 匹配内容 文件名

选项:

        -v:取反

        -o:仅仅显示处所匹配的内容

        -E:使用扩展

        -i:忽略大小写

 通配符和正则的区别:!!!!

通配符是对文件名进行匹配,但是正则表达式是对文件中的内容进行匹配的

 正则中的元字符

1、匹配单个字符

点(.)代表一个任意字符

2、[ ]:表示范围中的其中任意一个

[123456]:表示匹配中的其中一个
[0-9]:表示匹配所有的数字
[A-Z]:表示匹配所有大写的字母
[a-z]:匹配所有小写的字母
[a-Z]:匹配所有的字母

3、用字符集的方式表达

[[:space:]]:表示一个空格
[[:digit:]]:表示任意一个数字
[[:lower:]]:表示任意一个小写字母
[[:upper:]]:表示任意一个大写字母
[[:alpha:]]:表示任意一个字母
[[:alnum:]]:表示任意一个字母+数字
[[:punct:]]:表示任意一个标点符号

4、^[ ]:表示以中括号开头的行

       [^ ]:表示除了中括号里面的行

例子:过滤没有包含 qaz 的行
grep [^qaz] file

5、显示匹配到的行前后的若干行

-An:显示匹配到的内容的后n行
-Bn:显示匹配到的内容的前n行
-Cn:显示匹配到的内容的前后n行

 例子:匹配包含root的行的前3

grep -B3 "root" file

6、次数匹配

"*":代表前面的字符出现了任意次数(0-n次)".*":代表任意长度的任意字符"?":代表其前面的字符出现最多一次(注意:要结合-E使用)例子:grep -E "a{1,}b" 11.txt         b前面的a至少1次最多不限\{m,n\}:表示前面字符出现最少m次,最多出现n次(当用-E的时候可以不加\)例:-E a{m,n}b

7、位置锚定

^n:表示以n为开头的行n$:表示以n为结尾的行\<n:表示单词首部为n开头的
n\>:表示单词尾部以n为结尾的行
^$:表示显示空白行

8、分组

\( \) :将括号里面的内容看作一个整体
\1:表示引用第一个分组
\2:表示引用第二个分组例子:在11.txt中,过滤出出现过俩个相同数字的行
grep "\([[:digit:]]\).*\1" 11.txt

扩展正则表达式:

格式是:

格式1:grep -E 匹配内容 文件格式2:egrep 匹配内容 文件

+等同于{1, }:其前面的字符至少出现1次

或(|)

例子:过滤出开头是 a (不区分大小写)的行
egrep "^(a|A)" 11.txt
egrep "^[aA]" 11.txt

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

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

相关文章

/etc/passwd与/etc/group内容详解

/etc/passwd 在Linux系统中&#xff0c;/etc/passwd是一个文本文件&#xff0c;用于存储系统中的用户账号信息。该文件的每一行代表一个用户账号&#xff0c;包含以下七个字段&#xff0c;每个字段由冒号分隔&#xff1a; 1. 用户名&#xff08;Username&#xff09;&#xf…

k8s 声明式资源管理

一、资源配置清单的管理 1.1 查看资源配置清单 声明式管理方法&#xff1a; 1.适合于对资源的修改操作 2.声明式资源管理方法依赖于资源配置清单文件对资源进行管理 资源配置清单文件有两种格式&#xff1a;yaml&#xff08;人性化&#xff0c;易读&#xff09;&#xff0c;j…

Flink 调度源码分析4:Physical Slot 分配过程

Flink 调度源码分析1&#xff1a;拓扑图创建与提交过程 Flink 调度源码分析2&#xff1a;调度过程 Flink 调度源码分析3&#xff1a;Shared Slot 分配策略 Flink 调度源码分析4&#xff1a;Physical Slot 分配过程 1 整体过程 在 SlotSharingExecutionSlotAllocator.allocate…

【EXCEL_VBA_实战】两组数据比对是否一致(字符串数组)

工作背景&#xff1a;比对两组数据是否一致&#xff08;位置非一一对应&#xff09; 思路构建&#xff1a;两组数据转换为两组字符串数组&#xff0c;比对所包含元素是否相同 问题点&#xff1a;A数组的第一个元素不一定与B数组的第一个元素对应&#xff0c;此时无法通过公式…

es数据备份和迁移Elasticsearch

Elasticsearch数据备份与恢复 前提 # 注意&#xff1a; 1.在进行本地备份时使用--type需要备份索引和数据&#xff08;mapping,data&#xff09; 2.在将数据备份到另外一台ES节点时需要比本地备份多备份一种数据类型&#xff08;analyzer,mapping,data,template&#xff09; …

【Python快速上手(二十六)】- Python3网络编程(下)

目录 Python快速上手&#xff08;二十六&#xff09;- Python3网络编程&#xff08;下&#xff09;Python3 网络编程4. HTTP 编程4.1 HTTP 客户端4.2 HTTP 服务器 5. 网络协议处理5.1 URL 处理5.2 FTP 客户端 6. 实际应用案例6.1 网络爬虫6.2 聊天程序 7. 总结 Python快速上手&…

岛屿问题刷题

200. 岛屿数量 - 力扣&#xff08;LeetCode&#xff09; class Solution {public int numIslands(char[][] grid) {int n grid.length;//grid行数int m grid[0].length;//grid列数int res 0;for(int r 0;r<n;r){for(int c0;c<m;c){if(grid[r][c]1){dfs(grid,r,c);res…

分布式异步框架celery + Redis 安装配置

引入 这里不对web框架做过多说明&#xff0c;到时候在总结一篇 python的常见web框架 django、flask、tornado、sanic、fastapi..各框架区别 - 内部集成功能的多少 django&#xff0c;内部提供了很多组件。 【相对大】flask、tornado、sanic、fastapi… 本身自己功能很少第…

java集合类详解

目录 1、数组导入&#xff1a; 2、单列集合 List接口 1、ArrayList&#xff1a;数组列表 ArrayList类中的方法 2、LinkedList&#xff1a;链表列表 3、Vector&#xff1a;数组列表 4、list集合的遍历 1、for循环遍历 2、增强for循环 3、迭代器遍历 Set接口 1、Has…

data studio连接到虚拟机上的openGauss

参考&#xff1a;使用DataStudio连接本地虚拟机中的opengauss数据库_big data_白日梦想家_胖七七-华为云开发者联盟 本实验虚拟机安装的是CentOS7 数据库版本是&#xff1a;openGauss-5.0.2-CentOS-64bit-all.tar.gz 1.配置pg_hba.conf 首先使用su - omm登录到omm用户&…

MySQL数据库,创建表及其插入数据和查询数据

首先&#xff0c;由上图创建表 mysql> create table worker( -> dept_id int(11) not null, -> emp_id int (11) not null, -> work_time date not null, -> salary float(8,2) not null, -> poli_face varchar(10) not null default 群众, -> name…

vue中引入js脚本块或者js文件 js函数 js方法

一、vue中&#xff0c;使用js函数的方法 在vue文件中&#xff0c;如果想要在组件里&#xff0c;通过事件触发&#xff0c;调用到函数&#xff0c;这个函数需要放在特定的位置&#xff0c;如下&#xff1a; <script> export default {methods: {t1(){},t2(){},t3(){}} }…

华为设备WLAN基础配置

WLAN基础配置之AP上线 配置WLAN无线网络的第一阶段&#xff0c;AP上线技术&#xff1a; 实验目标&#xff1a;使得AP能够获得来自AC的DHCP地址服务的地址&#xff0c;且是该网段地址池中的IP。 实验步骤&#xff1a; 1.把AC当作三层交换机配置虚拟网关 sys Enter system view…

安卓CardView使用

目录 前言一、基础使用1.1 依赖导入1.2 CardView的常用属性1.3 CardView继承关系 二、关于Z轴的概念三、CardView效果3.1 圆角 CardView3.2 阴影 CardView3.3 设置卡片背景3.4 设置卡片背景&#xff08;内部颜色&#xff09;3.5 同时设置背景颜色 前言 CardView是Android支持库…

安卓调试问题记录

将之前Qt开发安卓时遇到的一些报错记录下 问题1 FAILURE: Build failed with an exception. What went wrong: A problem occurred configuring root project ‘android-build’. ​ >Could not resolve all files for configuration ‘:classpath’. ​ >Could not dow…

ubuntu rk3399 自启脚本

systemd 默认读取 /etc/systemd/system 下的配置文件&#xff0c;该目录下的文件会链接/lib/systemd/system/下的文件。 执行 ls /lib/systemd/system 你可以看到有很多启动脚本&#xff0c;其中就有我们需要的 rc.local.service 打开脚本内容&#xff08;如果没有就创建&…

WXML模板语法-数据绑定

1.数据绑定的基本原则 (1)在data中定义数据 (2)在WXML中使用数据 2.在data页面中定义数据&#xff1a;在页面对应的.js文件中&#xff0c;把数据定义在data对象中即可 &#xff08;这里打错了 应该是数组类型的数据... 报意思啊&#xff09; 3.Mustache语法的格式 把data中的…

低代码开发平台:开启企业数字化转型的快捷通道

低代码开发平台&#xff08;Low-Code Development Platform&#xff09;是近年来企业数字化转型中备受瞩目的技术工具&#xff0c;其被誉为加速业务上线的利器。随着信息技术的迅猛发展&#xff0c;企业对于数字化的需求与日俱增&#xff0c;但传统的软件研发流程往往耗时耗力&…

MATLAB|【免费】融合正余弦和柯西变异的麻雀优化算法SCSSA-CNN-BiLSTM双向长短期记忆网络预测模型

目录 主要内容 部分代码 部分结果一览 下载链接 主要内容 该程序实现多输入单输出预测&#xff0c;通过融合正余弦和柯西变异改进麻雀搜索算法&#xff0c;对CNN-BiLSTM的学习率、正则化参数以及BiLSTM隐含层神经元个数等进行优化&#xff0c;并对比了该改进算法…

PHP质量工具系列之phpunit

安装 composer require phpunit/phpunit --dev编写用咧 单元测试 以下是一个thinkphp6/8的示例&#xff0c;可根据实际情况修改&#xff0c;一般是放在项目目录的tests文件夹中&#xff0c;tests文件夹和public同级 <?php declare (strict_types 1);namespace tests;u…