一.sed是啥

sed流编辑器,Stream Editor)是 Unix/Linux 系统中强大的文本处理工具,常用于对文本进行替换、删除、插入、追加等操作。它逐行处理输入文本,并根据提供的脚本命令修改文本,最后输出结果。

二.基本操作

1.修改操作

(1)对整个文本进行修改

sed "s/-year/years" people.txt

 

(2)对文本指定行号进行修改

sed "2s/-year/years/" people.txt 

(3)对2到5行进行修改

sed "2,5s/-year/years/" people.txt 

 

(4)直接对原文进行修改加上-i

sed "2,5s/-year/years/" people.txt -i

(5)替换每一行中的所有的小写 s 成大写 S:

sed "s/s/S/g" people.txt

注意:g 的意思是一行中所有的匹配项,否则缺省只会匹配第一个 s

(6)替换每一行中的第 2 个小写 s 成大写 1:

sed "s/s/1/2" people.txt

 

(7)替换每一行中的第 2 个以后的小写 s 成大写 1:

sed "s/s/1/2g" people.txt 

2.多个匹配

(1)将 "-year" 改成 "years",并且将第 3 行以后的最后一个任意字符去掉:

 

在 sed 命令里,3,$s/.$// 是一段用于文本处理的规则,下面这就拆分成几个部分,给你详细讲讲每个符号的含义:

1. 行范围:3,$

  • 3 代表第 3 行$ 在 sed 里是一个特殊符号,专门用来表示最后一行
  • 把它们用 , 连起来 3,$,整体的意思就是 “从第 3 行开始,一直到文件的最后一行” 。也就是说,下面的替换操作(s/.$//)会作用在这个范围内的每一行文本上。

2. 替换语法:s/原内容/新内容/

这是 sed 里最常用的替换操作格式s 就是 “substitute(替换)” 的意思,整个结构就是告诉 sed :找到 “原内容”,把它换成 “新内容” 。

3. 匹配规则:.$

  • . 是正则表达式里的元字符,代表任意一个单个字符(像字母、数字、标点符号这些,除了换行符一般都能匹配)。
  • $ 前面讲过,是行尾的意思。把它们放一起 .$ ,就是说要匹配行末尾的那一个任意字符 。打个比方,要是一行文本是 abcde. ,那这里的 .(行末尾的那个点)就会被 .$ 匹配到;要是文本是 abcde ,那最后一个字符 e 会被匹配。

4. 替换为空://

sed 替换语法里,/ 是用来分隔 “原内容” 和 “新内容” 的。这里 “新内容” 的位置是空的(两个 / 紧挨着),意思就是把前面 .$ 匹配到的内容(行末尾最后一个字符 )替换成空字符串,说白了就是把行末尾最后一个字符删掉 。

 注意:

*在单引号里面,元义字符可以直接使用,如果要去掉元义则要在前面加 \;在双引号里面,sed 的命令要使用元义,则需要加 \,而命令的正则表达式要使用元义直接使用就行。

*在 sed 命令中,-e 选项用于指定多个编辑命令,允许在一次 sed 执行中组合多个操作。

(2)将 & 代替被匹配的变量:

sed -e "s/iS/[$]/" people.txt 

将文本中每一行出现的第一个 is 的左右两边加上 [ ]

(3)在指定行的前面插入 (i) 或者后面插入 (a) 一些信息:


sed ’3i abcd’ people.txt 意思是 ==> 在第 3 行的前面插入 abcd
sed ’2a abcd’ people.txt 意思是 ==> 在第 2 行的后面插入 abcd
sed ’1,4a abcd’ people.txt 意思是 ==> 在第 1 至 4 行的后面分别插入 abcd
sed ’/US/a abcd’ people.txt 意思是 ==> 在匹配 US 的行的后面插入 abcd

(4)将指定的行替换成其他信息:


sed "2c ok" people.txt 意思是 ==> 将第 2 行替换成 ok

(5)将指定的行删除掉:


sed ‘2d’ people.txt 意思是 ==> 将第 2 行给删掉
sed ‘/US/d’ people.txt 意思是 ==> 将匹配 / US / 的所有行给删掉
sed ’/<he>/d’ people.txt 意思是 ==> 将匹 配 he 的所有行给删掉,注意:之所以要用 <> 将 he 给括起来,是因为不想匹配 she,当然,<> 需要转义,写成 <>

(6)打印指定匹配的行,用命令 p:


sed ’/Chen/p’ people.txt -n 意思是 ==> 打印匹配 Chen 的行
sed ’/Chen/, /Lau/p’ people.txt -n 意思是 ==> 打印匹配 Chen 或者 Lau 的行
sed ’3,/UK/p’ people.txt -n 意思是 ==> 从第 3 行开始打印,直到匹配 UK 为止
sed ’/UK/,6p’ people.txt -n 意思是 ==> 从匹配 UK 的行开始打印,直到第 6 行为止

3.总结:

3.5        3代表开始5代表结束

&           代表he匹配的字符串

/A/          A为需要匹配的字符串

//            清空

s/A/a/     替换

i              前面插入

a             后面插入

d             删除

p             打印

在正则表达式中      <>        |        {}        ()        +若是单引号不需要加上\,双引号需要加上\

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

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

相关文章

知识速查大全:python面向对象基础

目录 一、面向对象的基本概念 二、类和对象 1.类 2.对象 三、属性&#xff08;数据&#xff09;和方法 1.数据 1.1.实例数据 1.2.类数据 2.方法 2.1.实例方法 2.2.类方法 3.数据和方法的综合使用 四、面向对象三大特性 1.封装 2.继承 2.1.单继承 2.2.多继承 2.3.混合类 2.4.方法…

Linux系统编程Day1-- 免费云服务器获取以及登录操作

一、 学生党如何“白嫖”或免费使用云服务器&#xff1f; 作为学生党&#xff0c;资金有限的情况下确实不容易长期负担服务器费用。但好消息是&#xff0c;有多种方式可以“白嫖”或低成本使用云服务器&#xff0c;尤其是针对学生身份、学习用途和开发者计划。 1、使用各大云平…

15.11 单卡训练770M参数模型!DeepSpeed ZeRO-3实战:RTX 4090显存直降6.8GB

单卡训练770M参数模型!DeepSpeed ZeRO-3实战:RTX 4090显存直降6.8GB 实战 DeepSpeed ZeRO-2 和 ZeRO-3 单机单卡训练 为什么需要单机单卡训练场景? 虽然 DeepSpeed 的 ZeRO 技术主要面向分布式训练场景,但单机单卡训练仍然具有重要实践价值: 开发调试:在资源有限情况下…

HTTPS基本工作过程:基本加密过程

HTTPS基本工作过程&#xff1a;HTTPS只是HTTP的基础上引入加密机制1.引入对称加密首先&#xff0c;什么是对称加密和非对称加密&#xff1f;对称加密&#xff1a;使用同一把密钥加密解密非对称加密&#xff1a;有两把密钥&#xff0c;为公钥&#xff08;公开的&#xff09;和私…

ES 文件浏览器:多功能文件管理与传输利器

ES 文件浏览器是一款功能强大的文件管理器软件&#xff0c;支持多种文件传输协议&#xff0c;能够方便地管理手机、平板电脑和电脑中的文件。它不仅提供了丰富的文件管理功能&#xff0c;还支持多种设备之间的文件传输&#xff0c;满足用户在不同场景下的需求。 核心功能 1. 文…

github-idea新建文件就要弹窗提醒-如何关闭-2025.7.30

打开设置 进入 File&#xff08;文件&#xff09; > Settings&#xff08;设置&#xff09;。 导航到版本控制设置&#xff1a; 在左侧导航栏中&#xff0c;展开 Version Control&#xff08;版本控制&#xff09;。 选择 Confirmation&#xff08;确认&#xff09;。修改文…

滚珠导轨在电子制造中的流畅性优势

在电子元件微米级精度要求的搬运与装配环节&#xff0c;传统导轨易因摩擦、磨损导致定位偏差或设备抖动。而滚珠导轨凭借滚动摩擦设计&#xff0c;将滑动阻力降低80%以上&#xff0c;成为高精度电子制造设备的首选传动部件。微米级精度&#xff1a;在贴片机中&#xff0c;滚珠导…

数据结构——单链表1

1. 单链表1.1 概念与结构概念&#xff1a;链表是一种物理存储结构上非连续、非顺序的存储结构&#xff0c;数据元素的逻辑顺序是通过链表中的指针链接次序实现的。1.1.1 结点与顺序表不同的是&#xff0c;链表里的每节都是独立申请下来的空间&#xff0c;我们称之为“节点/结点…

STM32CubeMX + HAL库:基于DHT11温湿度监测实现

1. 概述1.1 实验目的本实验旨在利用 DHT11 温湿度传感器&#xff0c;每隔 5 秒采集一次环境的温度与湿度数据&#xff0c;并通过串口将数据循环打印输出。所使用的 DHT11 模块硬件结构简单&#xff0c;包含三个接口引脚&#xff1a;电源正极&#xff08;VCC&#xff09;、电源负…

常见排序的特性总结

目录 1.排序的稳定性 2.直接插入排序的特性总结 3.希尔排序的特性总结 4.直接选择排序的特性总结 5.堆排序的特性总结 6.冒泡排序的特性总结 7.快速排序的特性总结 8.归并排序的特性总结 9.计数排序的特性总结 10.总结 1.排序的稳定性 排序的稳定性是说 相同大小的元…

【硬件-笔试面试题】硬件/电子工程师,笔试面试题-49,(知识点:OSI模型,物理层、数据链路层、网络层)

目录 1、题目 2、解答 OSI 七层模型的分层及功能&#xff08;从下到上&#xff09; 1. 物理层&#xff08;Physical Layer&#xff09; &#xff1a;网卡的物理接口、网线、光纤、集线器 2. 数据链路层&#xff08;Data Link Layer&#xff09;&#xff1a;交换机&#xf…

R 环境安装指南

R 环境安装指南 引言 R 是一种针对统计计算和图形表示的编程语言和软件环境。它广泛应用于数据分析和统计建模领域。本指南旨在为用户提供一个清晰、详细的 R 环境安装步骤,确保用户能够顺利地开始使用 R 进行数据分析。 安装前的准备 在开始安装 R 之前,请确保您的计算机…

Cesium entity跟随第一人称视角

1.跟随视角let firstView:any; const firstPerspective (entity: any) > {firstView () > {let curTime window.viewer.clock.currentTime;const pos entity.position.getValue(curTime);const orientation entity.orientation.getValue(curTime);if (pos &&…

传输层协议UDP与TCP

目录 一. UDP 1.1 UDP协议段格式 1.2 UDP传输的特点 1.3 面向数据报 1.4 UDP缓冲区 1.5 报文的理解 二. TCP 2.1 TCP协议段格式 2.2 确认应答机制&#xff08;ACK&#xff09; 2.3 超时重传机制 2.4 连接管理机制 为什么要三次握手&#xff1f; 三次&#xff1f;四…

SringBoot入门

文章目录SpringBoot入门一、关于&#xff1a;约定大于配置二、创建SpringBoot项目---起步案例创建SpringBoot项目案例创建项目方式2&#xff1a;通过aliyun网站创建创建项目方式3---基于官方地址创建三、配置项目项目结构自定义配置四、SpringBoot原理&#xff08;重点&#xf…

ansible 版本升级

1. 服务器上查看对应ansible 可安装的版本 yum info ansible 对比官网,服务器对应ansible 版本比较地址,不利于了解新版本的属性。 2. 升级比较新的ansible 版本,安装epel-release wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm rpm -iv…

企业微信API接口发消息实战:从0到1的技术突破之旅

摘要&#xff1a;本文详细介绍了通过企业微信官方API接口实现消息发送功能的完整实战流程。首先阐述了企业微信API在数字化办公中的重要性&#xff0c;重点讲解了消息发送接口的应用场景。实战部分分为前期准备、开发环境搭建和具体实现三个环节&#xff0c;包括创建企业微信应…

Linux的小程序——进度条

为了写出这个小程序我们先来了解几个知识点(一)回车和换行先以写作文为例子了解一下&#xff0c;当在一行中写了一半&#xff0c;由此处位置往下一行的操作叫做换行&#xff0c;回到该行的开头位置为回车。而在c语言中\n帮我们完成了换行和回车两个动作&#xff0c;那单纯回车是…

在macOS上使用VS Code和Clang配置C++开发环境

本文基于VS Code官方文档&#xff0c;详细介绍如何在macOS系统下配置Clang/LLVM编译器与VS Code的C开发环境。通过本文&#xff0c;你将学会如何搭建开发环境、创建并调试C程序&#xff0c;适合C初学者和需要在macOS上进行C开发的开发者。 前提条件 在开始配置前&#xff0c;…

Ganttable 基于工时的进度分析

时间进度分析是 Ganttable 提供的高级进度管理功能&#xff0c;它基于实际工作时长&#xff0c;结合计划预估工时&#xff0c;可精准计算项目及任务的完成度。开启进度分析开启进度分析功能的操作如下&#xff1a;在时间管理页面&#xff0c;点击右上角的 “设置” 按钮&#x…