正则表达式(三剑客之sed)

news2025/2/4 12:53:37

1.sed工具的使用

1.1 sed工具

1)命令格式:sed -n n p filename

1.2 打印某行

1)打印第二行

[root@localhost ~]# sed -n '2'p /etc/passwd

2)第二行重复打印

[root@localhost ~]# sed '2'p /etc/passwd

3)所有行全部打印

[root@localhost ~]# sed -n '1,$'p /etc/passwd

4)指定某个区间打印

[root@localhost ~]# sed -n '1,3'p /etc/passwd

1.3 打印包含某个字符串的行

1)打印包含root的行

[root@localhost ~]# sed -n '/root/'p /etc/passwd

2)打印以ro开头的行

[root@localhost ~]# sed -n '/^ro/'p /etc/passwd

3)打印以in结尾的行

[root@localhost ~]# sed -n '/in$/'p /etc/passwd

4)打印单个字符的行

[root@localhost ~]# sed -n '/r..o/'p /etc/passwd

5)打印匹配ooo零次或者多次的行

[root@localhost ~]# sed -n '/ooo*/'p /etc/passwd

6)sed命令加-e可以实现多个行为

[root@localhost ~]# sed -n -e '/r..o/'p -e '/ooo*/'p /etc/passwd

1.4 删除某些行

[root@localhost ~]# sed '1'd /etc/passwd

[root@localhost ~]# sed '1,4'd /etc/passwd

1.5 替换字符或者字符串

1)参数s表示替换的动作,参数g表示本行全局替换,如果不加g则只替换本行出现的第一个

sed -n '/r.o/'p /etc/passwd |sed -n '1,2s/ot/to/g'p

[root@localhost ~]# sed -n '/r.o/'p /etc/passwd |sed -n '1,2s/ot/to/'p

2)除了可以使用/作为分隔符外,我们还可以使用其他特殊字符

[root@localhost ~]# sed -n -e '/r.o/'p -e 's#ot#to#g'p /etc/passwd

[root@localhost ~]# sed -n -e '/r.o/'p -e 's@ot@to@g'p /etc/passwd

3)如何删除文档中的所有的数字或者字母呢

[root@localhost ~]# sed 's/[0-9]//g' /etc/passwd

[root@localhost ~]# sed 's/[a-z,A-Z]//g' /etc/passwd

1.6 调换两个字符串的位置

1)

[root@localhost ~]# sed 's/\(rot\)\(.*\)\(bash\)/\3\2\1/' /etc/passwd

2)上例中用()把想要的替换的字符打包成了一个整体,转义符\看起来很乱,加上-r就可以省略它

[root@localhost ~]# sed -r 's/(rot)(.*)(bash)/\3\2\1/' /etc/passwd

3)除了调换两个字符串的位置。还可以用sed在某一行前后增加指定内容

[root@localhost ~]# sed 's/^.*$/123&/' /etc/passwd

1.7 直接修改文件的内容

[root@localhost ~]# sed -i 's/ot/to/g' /etc/passwd

[root@localhost ~]# sed -i 's/to/ot/g' /etc/passwd

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

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

相关文章

细说STM32F407单片机IIC总线基础知识

目录 一、 I2C总线结构 1、I2C总线的特点 2、I2C总线通信协议 3、 STM32F407的I2C接口 二、 I2C的HAL驱动程序 1、 I2C接口的初始化 2、阻塞式数据传输 (1)函数HAL_I2C_IsDeviceReady() (2)主设备发送和接收数据 &#…

Android笔试面试题AI答之Android基础(7)

Android入门请看《Android应用开发项目式教程》,视频、源码、答疑,手把手教 文章目录 1.Android开发如何提高App的兼容性?**1. 支持多版本 Android 系统****2. 适配不同屏幕尺寸和分辨率****3. 处理不同硬件配置****4. 适配不同语言和地区**…

《机器学习》线性回归模型实现

目录 一、一元线性回归模型 1、数据 2、代码 3、结果 二、多元线性回归模型 1、数据 2、代码 3、结果 一、一元线性回归模型 1、数据 2、代码 # 导入所需的库 import pandas as pd # 用于数据处理和分析 from matplotlib import pyplot as plt # 用于数据可视化 fr…

基于DIODES AP43781+PI3USB31531+PI3DPX1207C的USB-C PD Video 之全功能显示器连接端口方案

随着USB-C连接器和PD功能的出现,新一代USB-C PD PC显示器可以用作个人和专业PC工作环境的电源和数据集线器。 虽然USB-C PD显示器是唯一插入墙壁插座的交流电源输入设备,但它可以作为数据UFP(上游接口)连接到连接到TCD&#xff0…

QWidget应用封装为qt插件,供其他qt应用调用

在之前的文章中,有介绍通过QProcess的方式启动QWidget应用,然后将其窗口嵌入到其他的qt应用中,作为子窗口使用.这篇文章主要介绍qt插件的方式将QWidget应用的窗口封装为插件,然后作为其他Qt应用中的子窗口使用. 插件优点: 与主程序为同一个进程,免去了进程间繁琐的通信方式,…

关于 覆铜与导线之间间距较小需要增加间距 的解决方法

若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/144776995 长沙红胖子Qt(长沙创微智科)博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV…

ArcGIS教程(009):ArcGIS制作校园3D展示图

文章目录 数据下载校园3D展示图制作创建要素类矢量化【楼】要素矢量化【绿地】矢量化【范围】矢量化处理打开ArcScene添加动画数据下载 https://download.csdn.net/download/WwLK123/90189025校园3D展示图制作 创建要素类 添加底图: 新建【文件地理数据库】,并修改名称为【…

权限注解+AOP切面+额外工具(UUID生成id,JWT,Servlet客户端,字符串String工具类,Redis序列化,ip工具类)

权限功能和注解的关系 ①、定义三个注解 //角色认证,必须具有指定角色标识才能进入该方法 Retention(RetentionPolicy.RUNTIME) Target({ElementType.METHOD,ElementType.TYPE}) public interface RequiresRoles{//需要校验的角色标识String[] value() default {}…

RGB、HSV颜色模型及MATLAB互换应用实例

一、前言 RGB和HSV模型是数字图像处理中颜色空间中的两种重要表示方式,RGB和HSV都是描述颜色的数学模型,可以用于表示和处理图像中的颜色信息。 RGB模型是一种基于光的颜色模型,由红(Red)、绿(Green&#x…

MySQL基础-常见的增删改查操作语句总结

1.数据库操作 查看所有数据库 show databases;创建数据库 create database db_stu; --如果数据库已经存在就不创建 create database if not exists db_stu; --添加默认字符集 create database db_stu default charset utf8mb4;删除数据库 drop database db_stu; --如果存在…

【运维】部署MKDocs

部署MKDocs obsidian 记录笔记,通过 mkdocs 私有化部署。 1 使用MKDocs创建笔记 创建仓库,安装 Material for MkDocs 和 mkdocs-minify-plugin mkdir tmp cd tmp git initpip install mkdocs-material pip install mkdocs-minify-pluginmkdocs new .2 …

黑马Java面试教程_P2_MySQL

系列博客目录 文章目录 系列博客目录前言1. 优化1.1 MySQL中,如何定位慢查询?面试文稿 1.2 面试官接着问:那这个SQL语句执行很慢,如何分析 ( 如何优化)呢?面试文稿 1.3 了解过索引吗?(什么是索引)1.4 继续问 索引的底层数据结构…

【优选算法】盛最多水的容器(双指针算法)

11. 盛最多水的容器 - 力扣(LeetCode) 【1.题目】 【2.算法原理】 【3.代码编写】 优化之后就遍历了一遍数组,时间复杂度变为O(N),就使用了几个变量,空间复杂度为O(1)。 class Solution { public:int maxArea(vecto…

安装torch-geometric库

目录 1.查看 torch 和 CUDA 版本 2.依次下载和 torch 和 CUDA 对应版本的四个依赖库pyg-lib、torch-scatter、torch-sparse、torch-cluster以及torch-spline-conv 3.下载并安装torch-geometric库 1.查看 torch 和 CUDA 版本 查看CUDA版本 nvcc -V 查看pytorch版本 pip s…

王佩丰24节Excel学习笔记——第十八讲:Lookup和数组

【以 Excel2010 系列学习,用 Office LTSC 专业增强版 2021 实践】 【本章技巧】 地址栏公式可以使用 F9 查看,取消请按Esc键,或者公式前的红色叉;使用数组时一定要注意使用绝对引用,方便下拉;使用数组时一…

【hackmyvm】hacked靶机wp

tags: HMVrootkitDiamorphine Type: wp 1. 基本信息^toc 文章目录 1. 基本信息^toc2. 信息收集2.1. 端口扫描2.2. 目录扫描2.3. 获取参数 3. 提权 靶机链接 https://hackmyvm.eu/machines/machine.php?vmHacked 作者 sml 难度 ⭐️⭐️⭐️⭐️️ 2. 信息收集 2.1. 端口扫描…

【超级详细】七牛云配置阿里云域名详细过程记录

0. 准备一个阿里云域名,记得要备案!!!! 1. 创建七牛云存储空间 首先,登录七牛云控制台,创建一个新的存储空间(Bucket)。这个存储空间将用于存放你的文件,并…

【JDBC】转账案例

回顾 使用工具类查询表 需求: 查询student表的所有数据,把数据封装到一个集合中 数据准备 #创建表 CREATE TABLE student( sid INT, name VARCHAR(100), age INT, sex VARCHAR(100) ) #插入数据 INSERT INTO student VALUES(1,张三,18,女),(2…

HTML——14. 超链接四种状态

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title>超链接</title></head><body><a href"https://ai.m.taobao.com" target"_blank">淘宝</a><br /><a href"…

微信V3支付报错 平台证书及平台证书序列号

1.平台证书及平台证书序列号设置错误报错&#xff1a; 错误1&#xff1a; Verify the response’s data with: timestamp1735184656, noncea5806b8cabc923299f8db1a174f3a4d0, signatureFZ5FgD/jtt4J99GKssKWKA/0buBSOAbWcu6H52l2UqqaJKvrsNxvodB569ZFz5G3fbassOQcSh5BFq6hvE…