正则表达式(拓展)、grep(拓展)和sed

news/发布时间2024/5/16 10:32:38

一、正则表达式

  egrep默认使用的是扩张正则

  表示次数

*匹配前面字符任意数
0次或者1次
+1次或者多次
{n}匹配n次
{m,n}最少m次,最多n次
{,n}匹配前面的字符最多n次
{n,}匹配前面的字符最少n次

  表示分组

()分组将多个字符捆绑在一起当作一个整体处理
\1、\2后向引用
|或者
a|ba或者b
C|catC或cat
(C|c)atCat或cat

二、grep

  格式:grep [选项]… 查找条件 目标文件

选项功能
-color=auto对匹配到的文本着色显示
-m匹配#次后停止
grep -m 1 root /etc/passwd多个匹配只取第一个
-v显示不被pattern匹配到的行,即取反
grep -Ev '[[:space:]]*#|^$'

-i

忽略字符大小写
-n显示匹配的行号
-c统计匹配的行号
grep -c root /etc/passwd统计匹配到的行号
-o仅显示匹配到的字符串
-q静默模式,不输出任何模式,用途写脚本
-Aafter,后#行
grep -A3 root /etc/passwd匹配到行后3行显示出来
-Bbefore,前#行
-Ccontext,前后各#行
-e实现多个选项间的逻辑or关系
grep -e root -e bash /etc/passwd包含root或者包含bash的行
grep -E root|bash /etc/passwd
-w匹配整个单词
grep -w root /etc/passwd
useradd rooter
-E使用ERE,相当于egrep
-F不支持正则表达式,fgrep
-ffile根据模式,处理两个文件相同内容 把第一个文件作为匹配条件
-r递归目录,但不处理软链接
-R递归目录,但处理软链接

  统计当前主机的连接状态 

  统计当前连接主机数

三、sed

  sed是行编辑器,和vi不同的是,sed是读取一行,处理一行,输出一行;而vi是将整个文件放到内存里打开。前者基本无视文件内容的大小,后者要注意自身内存是否能够涵盖住文件大小。

  格式:sed [选项]... {脚本(如果没有其他脚本)} [输入文件]...

  3.1 基本用法

    sed [option]...            'script;script;...'                 [input  file...]
        选项                          自身脚本语法               支持标准输入管道

选项功能
-n不输出模式空间到屏幕,即不自动打印
-e多点编辑[root@www data]#sed -n -e '/^r/p' /etc/passwd

-f

FILE从指定文件中读取编辑脚本
-r、-E使用扩展正则表达式
-i.bak备份文件并原处编辑

  3.2 sed脚本语法格式

    语法:地址+命令

     1. 不给地址:给全文进行处理

     2.单地址

       #:指定的行  $:最后一行

      /pattern/:该此处模式所能匹配到的每一个行

    3.地址范围

      #,#:从#行到第#行。举例:3,6代表从第3行到第6行

      #,+#:从#行到第+#行。举例:3,+4代表从第3行到第7行

    4.步行:~

      1~2  奇数步

      2~2  偶数步

命令注释
p打印当前模式空间内容,追加到默认输出之后
Ip忽略大小写输出
d删除模式空间匹配的行,并立即启动下一轮循环
a[\text]在指定行后面追加文本,支持使用\n实现多行追加
i[\text]在行前面插入文本
c[\text]替换行为单行文本或多行文本
wfile保存模式匹配的行至指定文件
rfile读取指定文件的文本至模式空间中匹配到的行号
=为模式空间的行打印行号
!模式空间中匹配行取反处理
q结束或退出sed

  另外它还支持正则表达式

    自动打印需要打印否则会全部打印,如图所示 

    正确结果应该如下图所示

    匹配两个正则表达式的行

      基本格式: '/表达式1/,/表达式2/p'  文件名

    匹配方式

  1.       先开始找b开头一直找到f开头
  2.       然后再重新找b开头,一找到f开头,没有f开头就全显示
  3.       重复循环

    奇偶数表示

    选项-d:删除

    修改文件内容,常常用于修改配置文件

    -i和-i.bak的区别

      -i:修改文件

      -i.bak:修改文件前先备份

    选项-a:追加 

  3.3 搜索替代

    s/pattern/string/修饰符 查找替换,支持使用其它分隔符,可以是其它形式:s@@@,s###
    替换修饰符:
      g 行内全局替换
      p 显示替换成功的行
      w   /PATH/FILE 将替换成功的行保存至文件中
      I,i   忽略大小写

    内容较长就不展示了

   

    提取版本号

[root@localhost /]#cat 1.txt | grep -e "[0-9]\+\."
ant-1.9.7.jar
ant-launcher-1.9.7.jar
antlr-2.7.7.jar
antlr-runtime-3.4.jar
aopalliance-1.0.jar
archaius-core-0.7.6.jar
asm-5.0.4.jar
aspectjweaver-1.9.5.jar
bcpkix-jdk15on-1.64.jar
bcprov-jdk15-1.46.jar
bcprov-jdk15on-1.64.jar
checker-compat-qual-2.5.5.jar

[root@localhost /]#cat 1.txt |sed -r 's/.*-(.*)\.jar/\1/'
1.9.7
1.9.7
2.7.7
3.4
1.0
0.7.6
5.0.4
1.9.5
1.64
1.46
1.64
2.5.5

  3.4 变量

  3.5 改配置文件

  3.6 修改网卡名

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

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

相关文章

Java SE 入门到精通—基础语法【Java】

敲重点! 本篇讲述了比较重要的基础,是必须要掌握的 1.程序入口 在Java中,main方法是程序的入口点,是JVM(Java虚拟机)执行Java应用程序的起始点。 main方法的方法签名必须遵循下面规范: publ…

林浩然与杨凌芸的Java List大冒险

林浩然与杨凌芸的Java List大冒险 Lin Haoran and Yang Lingyun’s Java List Adventure 在一个阳光明媚的日子,程序员界的“侠客”林浩然和他那聪明伶俐的同事兼好友杨凌芸正在Java王国里进行一场别开生面的大冒险。这次他们的目标是征服两个强大的List家族成员——…

Vue 中 onclick和@click区别

文章目录 一、直接上结论二、验证代码&#xff0c;可直接运行三、点击结果 一、直接上结论 onclick 只能触发 js的原生方法&#xff0c;不能触发vue的封装方法click 只能触发vue的封装方法&#xff0c;不能触发js的原生方法 二、验证代码&#xff0c;可直接运行 <!DOCTYP…

Mac M2芯片配置PHP环境

Mac M2芯片配置PHP环境 1. XAMPP2. PHPBrew(PHP版本管理)安装php7.4.33版本 3. 直接使用homebrew 安装php环境参考 1. XAMPP 官网地址 https://www.apachefriends.org/ 安装 安装完成 web server打开后&#xff0c;在打开localhost 成功&#xff01; 2. PHPBrew(PHP版本管…

JMeter 配置元件之按条件读取CSV Data Set Config

实践环境 win10 JMeter 5.4.1 需求描述 需求是这样的&#xff0c;需要压测某个接口(取消分配接口)&#xff0c;请求这个接口之前&#xff0c;需要先登录系统(物流WMS系统)&#xff0c;并在登录后&#xff0c;选择并进入需要操作的仓库&#xff0c;然后请求接口&#xff0c;…

数据结构-邻接矩阵

介绍 邻接矩阵&#xff0c;是表示图的一种常见方式&#xff0c;具体表现为一个记录了各顶点连接情况的呈正方形的矩阵。 假设一共有以下顶点&#xff0c;其连接关系如图所示 那么&#xff0c;怎么表示它们之间的连接关系呢&#xff1f; 我们发现&#xff0c;各条边所连接的都…

中科大计网学习记录笔记(十二):TCP 套接字编程

前前言&#xff1a;大家看到这一章节的时候一定不要跳过&#xff0c;虽然标题是编程&#xff0c;但实际上是对 socket 的运行机制做了详细的讨论&#xff0c;对理解 TCP 有很大的帮助&#xff1b;但是由于本节涉及到了大量的编程知识&#xff0c;对于一些朋友来说不是很好理解&…

Linux守护进程和会话

守护进程&#xff1a; 守护进程也叫精灵进程&#xff0c;是Linux中的后台服务进&#xff0c;通常独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事情。一般采用以d结尾的名字。 Linux后台的一些系统服务进程&#xff0c;没有控制终端&#xff0c;不能直接和用户…

2024年及以后在您的项目中使用的最佳CSS框架

在过去几年中&#xff0c;CSS已经取得了长足的进步。在过去&#xff0c;您可能会使用CSS来创建依赖于HTML表格和CSS浮动作为其布局系统的简单外观的Web应用程序。而现在&#xff0c;您可以设计复杂的交互式用户界面&#xff0c;具有优雅的设计。 尽管CSS变得越来越先进&#x…

【数据库】达梦数据库DM8开发版安装

目录 一、达梦数据库概述 1.1 达梦数据库简介 1.2 产品特性 1.3 产品架构 二、安装前准备 2.1 新建 dmdba 用户 2.2 修改文件打开最大数 2.3 挂载镜像 2.4 新建安装目录 2.5 修改安装目录权限 三、数据库安装 3.1 命令行安装 3.2 配置环境变量 四、配置实例 4.1…

自动驾驶中的 DCU、MCU、MPU、SOC 和汽车电子架构

自动驾驶中的 DCU、MCU、MPU 1. 分布式电子电气架构2. 域集中电子电气架构架构2.1 通用硬件定义 3. 车辆集中电子电气架构4. ADAS/AD系统方案演变进程梳理4.1 L0-L2级别的ADAS方案4.2 L2以上级别的ADAS方案 5. MCU和MPU区别5.1 MCU和MPU的区别5.2 CPU与SoC的区别5.3 举个例子 R…

java面试题之SpringMVC篇

Spring MVC的工作原理 Spring MVC的工作原理如下&#xff1a; DispatcherServlet 接收用户的请求找到用于处理request的 handler 和 Interceptors&#xff0c;构造成 HandlerExecutionChain 执行链找到 handler 相对应的 HandlerAdapter执行所有注册拦截器的preHandler方法调…

Redis 单个与多节点如何实现分布式锁

分布式锁 在许多环境中&#xff0c;分布式锁是非常有用的原语&#xff0c;在这些环境中&#xff0c;不同的进程必须以互斥的方式操作共享资源。在应对并发问题时&#xff0c;Redis 客户端还可以通过加锁的方式&#xff0c;来控制并发写操作对共享数据的修改&#xff0c;从而保…

数据分析 — Matplotlib 、Pandas、Seaborn 绘图

目录 一、Matplotlib1、折线图2、柱状图3、水平条形图4、直方图5、散点图6、饼图 二、pandas1、折线图2、柱状图 三、seaborn1、散点图2、箱线图3、直方核密度图4、成对图 一、Matplotlib Matplotlib 是一个用于绘制数据可视化图形的 Python 库。它提供了丰富的绘图工具&#…

从零开始学习Netty - 学习笔记 - NIO基础 - 文件编程:FileChannel,Path,Files

3.文件编程 3.1.FileChannel FileChannel只能工作在非阻塞模式下面&#xff0c;不能和selector一起使用 获取 不能直接打开FIleChannel&#xff0c;必须通过FileInputSream&#xff0c;或者FileOutputSetream &#xff0c;或者RandomAccessFile来获取FileChannel 通过FileIn…

如何使用Docker本地部署Jupyter+Notebook容器并结合内网穿透实现远程访问

文章目录 1. 选择与拉取镜像2. 创建容器3. 访问Jupyter工作台4. 远程访问Jupyter工作台4.1 内网穿透工具安装4.2 创建远程连接公网地址4.3 使用固定二级子域名地址远程访问 本文主要介绍如何在Ubuntu系统中使用Docker本地部署Jupyter Notebook&#xff0c;并结合cpolar内网穿透…

《Go 简易速速上手小册》第10章:微服务与云原生应用(2024 最新版)

文章目录 10.1 构建微服务架构 - 探索 Go 语言的微观世界10.1.1 基础知识讲解10.1.2 重点案例:订单处理系统订单服务测试服务10.1.3 拓展案例 1:用户认证服务安装所需的包实现用户模型和存储实现 JWT 生成和验证实现认证服务测试服务10.1.4 拓展案例 2:商品推荐服务设计商品…

深入浅出熟悉OpenAI最新大作Sora文生视频大模型

蠢蠢欲动&#xff0c;惴惴不安&#xff0c;朋友们我又来了&#xff0c;这个春节真的过的是像过山车&#xff0c;Gemini1.5 PRO还没过劲&#xff0c;OpenAI又放大招&#xff0c;人类真的要认输了吗&#xff0c;让我忍不住想要再探究竟&#xff0c;到底是什么让文生视频发生了质的…

Fiddler工具 — 19.Fiddler抓包HTTPS请求(二)

5、查看证书是否安装成功 方式一&#xff1a; 点击Tools菜单 —> Options... —> HTTPS —> Actions 选择第三项&#xff1a;Open Windows Certificate Manager打开Windows证书管理器。 打开Windows证书管理器&#xff0c;选择操作—>查看证书&#xff0c;在搜索…

建造者模式

1.模式定义: 将一个复杂对象的创建与他的表示分离&#xff0c;使得同样的构建过程可以创建不同的表示 2.应用场景 1.需要生成的对象具有复杂的内部结构 2.需要生成的对象内部属性本身相互依赖 3.与不可变对象配合使用 3.优点&#xff1a; 1、建造者独立&#xff0c;易扩展…
推荐文章